input[type="radio"]自定义样式

简介: input为radio时,虽然会有默认选中的样式,但是并不符合大多数项目的需求,我们的目标是可以随心所欲自定义它的样式。怎么做呢?其实很简单,只要抓住3点。分别是1.label 2.隐藏自带样式 3.绘制我们的样式。

input为radio时,虽然会有默认选中的样式,但是并不符合大多数项目的需求,我们的目标是可以随心所欲自定义它的样式。怎么做呢?其实很简单,只要抓住3点。分别是1.label 2.隐藏自带样式 3.绘制我们的样式。
首先,我们准备了一个简单的选中样式,看图:

img_396451355dafbdbc4d13da1dccc7ebb0.png

下面我们看看怎么实现

1.label

我们都知道,label可以和input关联,达到点击label就触发input的效果。
既然这样,我们就要充分的利用它。

<label for="cat" class="radio-box">
    <input type="radio" name="group" id="cat">
    <span class="radio-style">猫</span>
</label>
<label for="dog" class="radio-box">
    <input type="radio" name="group" id="dog">
    <span class="radio-style">狗</span>
</label>

看看这个简单的结构,label里面包了一个input和span,可以想象,我们的效果就是点击label触发input
我们看一下效果

img_55cd79cf89bf327b425e53cbbccc8161.png

2.隐藏自带样式

如何隐藏自带样式呢?方法很多,这里提供一种常用的写法

input[type="radio"] {
    opacity: 0;
    width: 0;
    height: 0;
}

这样我们就看不到input自带的丑陋选择框了,再看一下效果,oh,yeah!消失了。

img_1a0d3d0d0989ecfe7185c115aa946a3f.png

3.绘制自己的样式

利用span标签绘制自己的样式

.radio-style::before {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid #d9d9d9;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    content: "";
}

input[type="radio"]:checked + .radio-style::before {
    padding: 4px;
    background-color: blue;
    background-clip: content-box;
    border-color: blue;
}

我们利用伪元素,给它绘制一个圆圈,然后在选中状态的时候,在改变它的样式,从而达到第一张图的效果。
以下是所有代码的地址,欢迎查看

input-radio

当然以上是最简单自定义样式,我们还可以把它绘制成按钮的形式,甚至是用图片代替它。虽然这样更加繁琐,但是万变不离其宗,只要掌握上面3点,你就可以随心所欲修改它的样式啦。

相关文章
|
5月前
layui给radio添加checked属性不起作用
layui给radio添加checked属性不起作用
110 0
|
JavaScript
Element el-radio 单选框详解
本文目录 1. 用途 2. 单选框 3. 单选框样式 4. 单选框组 4. 单选框组样式 5. 尺寸调节 6. 绑定值变化事件 7. 小结
1614 0
Element el-radio 单选框详解
|
1月前
|
Web App开发 数据可视化 JavaScript
input标签的type属性汇总
input标签的type属性汇总
87 0
|
2月前
|
JavaScript
v-model指令获取常见表单项的内容 input,textarea,radio,checkbox,select
本文介绍了Vue.js中v-model指令的作用和语法,并通过示例代码展示了如何使用v-model来获取不同类型的表单元素(如文本输入框、文本域、复选框、单选框和下拉菜单)的内容。
|
6月前
|
Web App开发 前端开发 iOS开发
input中typedate的属性都有那些
input中typedate的属性都有那些
|
5月前
input的Checkbox(复选框)属性具体怎么使用
input的Checkbox(复选框)属性具体怎么使用
280 0
|
6月前
|
移动开发 自然语言处理 前端开发
input表单 type属性详解
input 元素可以用来生成一个供用户输入数据的简单文本框。 在默认的情况下, 什么样的数据均可以输入。而通过不同的type属性值,可以限制输入的内容。
130 1
|
6月前
input type="button"和button的区别
input type="button"和button的区别
|
6月前
|
前端开发
|
数据安全/隐私保护
input表单的23个type属性
input表单的23个type属性
149 0