背景
使用原生的radio/checkbox会使界面很丑,所以会使用技巧实现更美观的单选框和复选框,本文只是其中的一种实现。
主要技巧
-
隐藏原来的样式
-
利用label实现绑定
-
使用伪元素实现选择和未选择的不同样式
代码(没有做兼容处理)
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>作业</title>
<link rel='stylesheet' href=''>
<style type="text/css">
input[type=radio],input[type=checkbox]{
display:none;
}
.radio{
float:left;
width:10px;
height:10px;
margin-top:5px;
border:1px solid green;
border-radius:50%;
}
.radio::after{
content:'';
display:block;
margin:1px 1px;
width:8px;
height:8px;
border-radius:50%;
background:green;
transform:scale(0);
}
.option{
float:left;
height:20px;
line-height:20px;
margin:0 4px;
}
input[type=radio]:checked + .radio::after{
transform:scale(1);
}
.clearfix::after{
content:'';
display:block;
clear:both;
}
.checkbox{
float:left;
width:10px;
height:10px;
margin-top:5px;
border:1px solid green;
}
.checkbox::after{
content:'✔';/*可以用其他方法实现,如图片等*/
display:block;
margin-top:-3px ;
color:green;
width:8px;
height:8px;
font-size:12px;
transform:scale(0);
}
input[type=checkbox]:checked + .checkbox::after{
transform:scale(1);
}
</style>
</head>
<body>
<form method="post" action="">
<div id="" class="radio-part">
<div id="" class="clearfix">
<label>
<input type="radio" name="fruit" value='putao' >
<span class="radio"></span>
<span class="option">葡萄</span>
</label>
</div>
<div id="" class="clearfix">
<label>
<input type="radio" name="fruit" value='xigua' >
<span class="radio"></span>
<span class="option">西瓜</span>
</label>
</div>
<div id="" class="clearfix">
<label>
<input type="radio" name="fruit" value='li' >
<span class="radio"></span>
<span class="option">梨</span>
</label>
</div>
</div>
<div id="" class="checkbox-part">
<div id="" class="clearfix">
<label>
<input type="checkbox" name="fruit" value='putao' >
<span class="checkbox"></span>
<span class="option">葡萄</span>
</label>
</div>
<div id="" class="clearfix">
<label>
<input type="checkbox" name="fruit" value='xigua' >
<span class="checkbox"></span>
<span class="option">西瓜</span>
</label>
</div>
<div id="" class="clearfix">
<label>
<input type="checkbox" name="fruit" value='li' >
<span class="checkbox"></span>
<span class="option">梨</span>
</label>
</div>
</div>
</form>
</body>
</html>
结果截图
未选时.png
选中时.png












网友评论