开发者社区> 阿逗> 正文

css 模拟radio的样式

简介: 1、input 默认的 type 为 radio的样式,在具体场合中的改造 默认的样式这样: 但是我要这样的: 这样看来是不是比原来的好看多了。 2、优化radio的样式 {{val}}  这个是vue的一个例子,点击一个元素给它追加一个class。
+关注继续查看

1、input 默认的 type 为 radio的样式,在具体场合中的改造

默认的样式这样:

但是我要这样的:

这样看来是不是比原来的好看多了。

2、优化radio的样式

<span class="answer-item-wrapper" :class="{ active: chooseNum === index }" @click="selectItem(index)">
   <span class="select-wrapper">
   </span>
   <span class="select-content">
     {{val}}
   </span>
</span>

 这个是vue的一个例子,点击一个元素给它追加一个class。当然这个不是重点,重点是 红色部分,我们需要对红色部分进行css描述。

  .select-wrapper {
    display: inline-block;
    height: 16px;
    width: 16px;
    background-color: #fff;
    border: 1px solid #d4a668;
    border-radius: 100%;
    margin-right: 10px;
    margin-top: -1px;
    vertical-align: middle;
    line-height: 1;
  }

  然后对这个添加一个伪类

.answer-item-wrapper.active .select-wrapper::after {
    content: "";
    display: inline-block;
    height: 12px;
    margin: 2px;
    width: 12px;
    background-color: #cd9a51;
    border-radius: 100%;
 }

 OK 这样的 话, 就可以实现了radio这样按钮的格式。

3、直接对input的一种改造

具体见完整demo,参考另外一个同学的写法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>

  <style>
    .demo--label{margin:20px 20px 0 0;display:inline-block}
    .demo--radio{display:none}
    .demo--radioInput{background-color:#fff;border:1px solid #cd9a51;border-radius:100%;display:inline-block;height:16px;margin-right:10px;margin-top:-1px;vertical-align:middle;width:16px;line-height:1}
    .demo--radio:checked + .demo--radioInput:after{background-color:#cd9a51;border-radius:100%;content:"";display:inline-block;height:12px;margin:2px;width:12px}
    .demo--checkbox.demo--radioInput,.demo--radio:checked + .demo--checkbox.demo--radioInput:after{border-radius:0}
  </style>
</head>
<body>
  <div>
    <input  type="radio" name="demo-radio"> 我是radio
    <div></div>
    <label class="demo--label">
        <input class="demo--radio" type="radio" name="demo-radio">
        <span class="demo--radioInput"></span>我是radio
    </label>
    <div></div>
    <label class="demo--label">
        <input class="demo--radio" type="radio" name="demo-radio">
        <span class="demo--radioInput"></span>我是另一个radio
    </label>
</div>
</body>
</html>

  截图如下:

 

 附录: 第一个例子是用vue的一个方法,添加active ,然后,对这个有active的 元素下的子元素进行css描述。这个给当前元素添加class的方法解释,请挪步至另一篇笔记:

https://www.cnblogs.com/adouwt/p/7911639.html

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
css 样式文件中的特殊符号 - 波浪号(也叫 tilde,squiggle,twiddle)
css 样式文件中的特殊符号 - 波浪号(也叫 tilde,squiggle,twiddle)
11 0
前端学习笔记202304学习笔记第六天-对象语法绑定css样式
前端学习笔记202304学习笔记第六天-对象语法绑定css样式
9 0
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第4章CSS文本样式
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第4章CSS文本样式
45 0
css文本样式
css文本样式
14 0
CSS学习笔记(十) 样式覆盖规则
CSS学习笔记(十) 样式覆盖规则
14 0
CSS学习笔记(三) 样式声明
CSS学习笔记(三) 样式声明
26 0
掌握JavaScript HTML DOM:动态改变CSS样式的实用技巧
随着Web前端技术的不断发展,JavaScript作为一种强大的脚本语言,在前端开发中扮演着重要角色。其中,HTML DOM (文档对象模型)作为JavaScript与HTML之间的桥梁,允许开发者通过JavaScript来改变HTML页面的内容、结构和样式,从而实现丰富的用户交互和动态效果
33 0
【web前端开发】CSS文字和文本样式
本篇文章主要讲解CSS中的文字和文本样式及一些实用技巧.文章最后有思维导图.
32 0
【JavaScript】使用DOM修改和查询CSS内联样式
【JavaScript】使用DOM修改和查询CSS内联样式
21 0
+关注
阿逗
前端开发工程师,做pc和h5端界面。现在前端主用框架vue.js,后端主用nodejs(框架express.js)。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
零基础CSS入门教程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多