CSS自定义绿色复选框按钮样式

时间:2021-05-08

HTML自带的复选框或者单选框按钮样式都是比较简单的一种. 而有时候这些表单控制, 可能需要配合自己的主题样式. 需要去美化他们. 以前可能需要借助JS的实现. 现在CSS也可以完全实现我们想要的效果.

效果图:

我们直奔主题. 首先想到的是, 复选框需要的是一个背景色, 然后就是一个复选框选中的状态.选中状态我们这里用 "勾号" 来表示. HTML就可以简单的表示了

XML/HTML Code复制内容到剪贴板
  • <divclass="i-check">
  • <inputtype="checkbox"value="0"/>
  • <label></label>
  • </div>
  • .i-check 作为整体的复选框.加入的CSS代码也简单

    CSS Code复制内容到剪贴板
  • .i-check{
  • width:20px;
  • height:20px;
  • position:relative;
  • margin:20pxauto;
  • }
  • 复选框的大小根据自己的需要而定. 这里设置margin, 是为了显示在浏览器的中间.
    然后就是设定复选框的默认状态, 这里利用label来设置, 其高度和宽度都与.i-check设置一样, 然后给其一个背景色,设置好他的位置.

    CSS Code复制内容到剪贴板
  • .i-checklabel{
  • width:20px;
  • height:20px;
  • cursor:pointer;
  • position:absolute;
  • top:0;
  • left:0;
  • background:#1A9909;
  • border-radius:4px;
  • 默认状态我们已经弄好了. 我们继续分析, 那这时候需要的是一个选中状态, 选中状态刚已经讲过用一个勾号表示, 这里我们利用伪类after来设置,设置其边框,及旋转这个after, 就变成了勾号.但是默认状态勾号是隐藏的, 所以我们用了opacity为0.

    CSS Code复制内容到剪贴板
  • .i-checklabel:after{
  • content:'';
  • width:9px;
  • height:5px;
  • position:absolute;
  • top:4px;
  • left:4px;
  • border:3pxsolid#fff;
  • border-top:none;
  • border-right:none;
  • background:transparent;
  • opacity:0;
  • transform:rotate(-45deg);
  • }
  • 好了, 整个状态设置好了. 现在需要在点击复选框的时候让勾号显示出来.下面的代码就可以完成

    CSS Code复制内容到剪贴板
  • .i-checkinput[type=checkbox]:checked+label:after{
  • opacity:1;
  • }
  • 写到这里,不要忘记了, 让Input复选框设置其样式, 为了让用户能够点击到, 他的高宽度都要和整体一样大小, 让其在整个盒子的最顶层.这样用户就可以能够随便在这个区域就能点击. OK , 最后一步就是让这个input复选框隐藏起来, 隐藏起来, 不是让他真正的隐藏去掉, 这样的话, 就没有点击效果. 这里隐藏需要的是用opacity来设置为0.

    CSS Code复制内容到剪贴板
  • .i-checkinput[type=checkbox]{
  • opacity:0;
  • position:absolute;
  • z-index:2;
  • left:0;
  • top:0;
  • width:100%;
  • height:100%;
  • margin:0;
  • }
  • 好了, 整个效果就完成了, 同理这个也可以去设定单选框的效果。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章