美文网首页
利用【伪元素】自定义复选框

利用【伪元素】自定义复选框

作者: 巴斯光年lip | 来源:发表于2017-06-13 23:52 被阅读0次

默认状态下的复选框:

<input type="checkbox" id="awesome"/>
<label for="awesome">Awesome!</label>

当 <label>元素与复选框关联之后,可以起到触发开关的作用。我们可以为它添加生成性的内容(伪元素),并基于复选框的状态来为其设置样式。然后再把真正的复选框隐藏起来。
接下来为它添加样式:

input[type="checkbox"] + label:before {
  content:"\a0";  /*不换行空格*/
  display:inline-block;
  vertical-align:0em;
  width:.75em;
  height:.75em;
  margin-right:.2em;
  border-radius:.2em;
  background:#ace;
  text-indent:.15em;
  line-height:.65;
}
复选框和 label 的样子

现在给复选框的勾选状态(checked)加上不同的样式:

input[type="checkbox"]:checked + label:before {
  content:"\2713";
  background:#fce;
}
checked 状态
现在,把原来的复选框以一种不损失可访问性的方式隐藏起来。这意味着不能使用display:none;因为那样会把它从键盘tab键切换焦点的队列中完全消除。
input[type="checkbox"] {
  position:absolute;
  clip:rect(0,0,0,0);  /*clip 属性剪裁绝对定位元素。*/
}

也可采用另一个方法:

input[type="checkbox"] {
  position:absolute;
  left:-9999px;  /*让当前元素跑到页面外面去*/
}

你还可以继续优化它,比如在它聚焦或禁用时改变它的样式,甚至可以用过渡或者动画来让各个状态更加平滑。


参考书籍:Lea Verou《CSS揭秘》

相关文章

  • 利用【伪元素】自定义复选框

    默认状态下的复选框: 当 元素与复选框关联之后,可以起到触发开关的作用。我们可以为它添加生成性的内容(伪元素),...

  • 使用CSS3美化复选框checkbox

    通过css3伪元素实现以下样式效果checkbox复选框 html部分 css部分

  • 仿bootstrap hover 提示字符

    要实现的效果大概就是这样---- 思路:对target 设置自data-msg 自定义属性利用伪元素 conte...

  • css伪元素::before和::after用法

    ::befrore 和::after伪元素分别表示元素内容的【前】【后】,利用这两个伪元素可以在元素内容的前后添加...

  • 【CSS】页面顶部阴影

    利用伪元素实现,并设置 position:fixed;

  • 31、自定义复选框

    使用label元素的伪元素模仿单选框和复选框的按钮部分,将真正的按钮隐藏。 使用CSS3的新选择器:checked...

  • 01、CSS3-选择器

    一、属性选择器 案例: 百度文库 二、结构性伪类选择器 三、伪类选择器 案例: 改变单选框/复选框样式 四、子元素...

  • CSS3新特性

    1.属性选择器 2.结构伪类选择器 3.伪元素选择器(重点) 伪元素选择器可以帮助我们利用CSS创建新标签元素,而...

  • 【CSS】角标(伪元素)

    利用伪元素( ::before 和 ::after )制作,这样可以不影响主元素,也不用依赖其他html元素。 利...

  • 关于伪类的特性

    清除浮动时用到的伪类:after 利用伪类在元素前后添加其他内容时,伪类默认表现出行内元素的特性,所以设置heig...

网友评论

      本文标题:利用【伪元素】自定义复选框

      本文链接:https://www.haomeiwen.com/subject/lghjqxtx.html