怎么给单选框做css
首先,让我们来看下单选框的实现:
在html中的input元素中,将其type属性值设置为radio,即为单选框,此时只需将要设置的单选选项的name属性设置成一致的,即可实现单选功能。
<input type="radio" name="gender" value="male">男 <input type="radio" name="gender" value="female">女
要实现单选框样式改变,只需以下几步:(推荐学习:CSS视频教程)
1、首先给出input的type属性为radio,设置相同name。同时用label将相应字段关联上该input属性(当label的for属性值与input的id属性值相同时 ,即可关联。关联上之后,点击字段即可选中相应的单选框)。
html中:
<div> <input type="radio" name="paixu" id="paixu1" checked> <label for="paixu1" style="cursor:pointer">按热门排序</label> <input type="radio" name="paixu" id="paixu2"> <label for="paixu2" style="cursor:pointer">按时间排序</label> <input type="radio" name="paixu" id="paixu3"> <label for="paixu3" style="cursor:pointer">按评价排序</label> </div>
2、设置input的display属性为none,将比较丑的那个框去掉。然后用伪元素添加相应的框。即在label中,用::before添加一个空心圆圈。
div>input{ display: none; } div>label{ position: relative; margin-right: 34px; } div>label::before{ display: inline-block; content: ""; width: 16px; height: 16px; border-radius: 50 border: 1px solid rgb(219, 219, 219); margin-right: 6px; vertical-align: bottom; }
3、在input单选框在选中的时候,原有before的单选框变为红色实心框,同时添加label::after为白色圆,并将其定位到before的红色实心框中间。从而达到重叠的效果,实现红色圆框+白色圆心的效果。
div>input:checked+label::before{ background-color: rgb(239, 66, 56); } div>input:checked+label::after{ display: inline-block; content: ""; width: 6px; height: 6px; border-radius: 50 position: absolute; left: 6px; bottom: 6px; background-color: white; }
是不是挺简单的呢?通过这样的方法还可以设置很多样式呢。
完整代码如下:
<!DOCTYPE html> <html> <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> div>input{ display: none; } div>label{ position: relative; margin-right: 34px; } div>label::before{ display: inline-block; content: ""; width: 16px; height: 16px; border-radius: 50 border: 1px solid rgb(219, 219, 219); margin-right: 6px; vertical-align: bottom; } div>input:checked+label::before{ background-color: rgb(239, 66, 56); } div>input:checked+label::after{ display: inline-block; content: ""; width: 6px; height: 6px; border-radius: 50 position: absolute; left: 6px; bottom: 6px; background-color: white; } </style> </head> <body> <div> <input type="radio" name="paixu" id="paixu1" checked> <label for="paixu1" style="cursor:pointer">按热门排序</label> <input type="radio" name="paixu" id="paixu2"> <label for="paixu2" style="cursor:pointer">按时间排序</label> <input type="radio" name="paixu" id="paixu3"> <label for="paixu3" style="cursor:pointer">按评价排序</label> </div> </body> </html>
效果:
更多CSS相关技术文章,请访问CSS3答疑栏目进行学习!
以上就是怎么给单选框做css的详细内容,更多请关注易知道|edz.cc其它相关文章!