html多选框_CSS 美化复选框 无图片方式

今天和大家分享一个不使用图片美化复选框的方式。来看下效果图吧,如下是3种不同状态下的效果:

079bf9abaeb54b098bed2d82f8a898c8.png

一. Html结构

<div class="check-wrap">
     <input type="checkbox" class="icheck" id="icheck" />
     <label for="icheck" class="ilabel">label>
div>

注:label 标签的 for 属性值必须指定为 input 的 id 名称。

二. CSS 代码

/* 定义复选框的大小 */
.check-wrap{
     position: relative;
     height: 24px;
     width: 24px;
}

/* 将原生 checkbox 设置成完全透明 */
.icheck{
     opacity: 0;
}

/* 绝对定位遮盖住checkbox */
.ilabel{        
     border-radius: 3px;    
     cursor: pointer;
     display: block;
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
}

/* 利用伪元素来实现选中和未选中状态 */
.ilabel::after{
     content: " ";
     border: 2px solid #DDD;        
     display: block;
     font-weight: bold;
     text-align: center;
     border-radius: 3px;
     width: 20px;
     height: 20px;
 }
 .icheck:checked + .ilabel:after{
     content: "✓";
     border-color: #3f51b5;
     background-color: #3f51b5;
     color: #fff;
  }
  .icheck:indeterminate + .ilabel:after{
     content: "■";
     color: #3f51b5;
     background-color: #FFF;
     border-color: #3f51b5;
  }

1. 将原有的 checkbox 标签透明度设为0;

2. label:after 的宽高设置 20px 是因为 border 占据了4px;

3. checkbox 的 indeterminate 状态大家用的可能比较少(效果图中的第2个状态),只能通过 js 进行设置,这种情况通常用在树型结构或多选表格中,表示部分选中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值