您现在的位置:首页 >> 前端 >> 内容

自定义复选框

时间:2017/3/2 10:00:00 点击:

  核心提示:1.为什么要自定义复选框?因为原生复选框的默认样式比较少,不太美观,而且当我们为其修改样式时,会发现,除了可以设置宽度和高度等少数样式外,其余样式都没有效果。这时,我们需要自己来设计一个漂亮的复选框。...

1.为什么要自定义复选框?

因为原生复选框的默认样式比较少,不太美观,而且当我们为其修改样式时,会发现,除了可以设置宽度和高度等少数样式外,其余样式都没有效果。这时,我们需要自己来设计一个漂亮的复选框。

2.如何自定义复选框?

解决方法很简单。主要分为两步。第一步是,添加label元素让其与复选框产生关联。第二步是通过给label元素设置::before伪元素,让其与原生复选框之间生成一个自定义的复选框,然后通过:checked, :focus, :disabled等伪类选择器为自定义复选框丰富样式。

具体实现代码如下:

HTML:




CSS:

//添加自定义复选框
input[type="checkbox"] + label::before{
  content:"\00a0";//Unicode字符集,生成“空格”
  display:inline-block;
  width:12px;
  height:12px;
  line-height:12px;
  border-radius:3px;
  margin:3px;
  background-color:yellowgreen;
}
//添加选中样式
input[type="checkbox"]:checked+label::before{
  content:"\2713";//Unicode字符集,生成“勾选符号”
  color:red;
}
//添加聚焦样式
input[type="checkbox"]:focus + label::before{
  box-shadow: 0 0 2px 2px #58a;
}
//隐藏原生复选框
#running{
  position:absolute;
  clip:rect(0,0,0,0);
  //也可以使用display:none等方法隐藏复选框,不过那样就无法用Tab键使复选框聚焦
}

效果如下:
自定义复选框

附:

Unicode字符集:https://unicode-table.com/cn/#control-character

在线代码演示:https://jsfiddle.net/Anthony_chao/vokuw76p/4/

作者:网络 来源:renxinzhew