31、自定义复选框

使用label元素的伪元素模仿单选框和复选框的按钮部分,将真正的按钮隐藏。

<input type="checkbox" id="a"/>
<label for="a">选项</label>


input[type="checkbox"] + label:before{
    content: "\a0";
    display: inline-block;
    vertical-align: .2em;
    width: .8em;
    height: .8em;
    margin-right: .2em;
    border-radius: .2em;
    background: silver;
    text-indent: .15em;
    line-height: .35;
}
input[type="checkbox"]{
    width: 0;
    height: 0;
    position: absolute;
}

使用CSS3的新选择器:checked对选中的单选框或复选框设置样式。

input[type="checkbox"]:checked + label:before{
    content: "\2713";
    background: yellowgreen;
}

同理也可以利用:focus和:disabled选择器对聚焦和禁用的选框设置样式

input[type="checkbox"]:focus + label:before{
    box-shadow: 0 0 .1em .1em #58a;
}
input[type="checkbox"]:disabled + label:before{
    box-shadow: none;
    background: gray;
    color: #555;
}


使用模拟选框的思路还可以用来实现开关类型的按钮,同样将选框隐藏,然后直接将label元素设计成按钮的形式。

input[type="checkbox"] + label{
    display: inline-block;
    padding: .3em .5em;
    background: #ccc;
    background-image: linear-gradient(#ddd,#bbb);
    border: 1px solid rgba(0,0,0,.2);
    border-radius: .3em;
    box-shadow: 0 1px white inset;
    text-align: center;
    text-shadow: 0 1px 1px white;
}
input[type="checkbox"]:checked + label{
    box-shadow: .05em .1em .2em rgba(0,0,0,.6) inset;
    border-color: rgba(0,0,0,.3);
    background: #bbb;
}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 11,203评论 3赞 184
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,876评论 0赞 11
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,357评论 1赞 92
  • 《三国演义 》讲述的是从汉灵帝元年(184)黄巾军起义,到晋武帝太康元年(280年)间,魏、吴、蜀、三国灭亡,晋武...
    勇敢的追求阅读 665评论 0赞 1
  • vsco目前国内无法登陆(登陆时显示"未找到电子邮箱地址",或"出现错误")。安装并开启下列工具后,才能登陆vsc...
    良品公园阅读 16,812评论 1赞 5

友情链接更多精彩内容