视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MIUI选项框开关样式模拟
2020-11-27 15:38:17 责编:小采
文档


最终效果如图:

实现过程

1. 选项框checkbox

模拟开关当然需要一个选项框,这里用到了复选框checkbox

2. 理解开关的过程

点击开关按钮,则开启或关闭。原生的checkbox无法做到图示的效果,所以就需要额外的元素来表示图中的开关

而我们又要使用到checkbox的点击效果以及点击后是否选中(checked)的效果,所以checkbox不能隐藏,但可以用覆盖的方式

为了减少多余标签的使用,可以使用伪元素:before、:after ,标签结构为

  
开启WLAN

3. 开关的实现

用:before伪元素作为开关背景层,用:after伪元素作为开关项(即那个小圆圈)

 .switch input:before {
 content: '';
 display: inline-block;
 position: relative;
 border-radius: 20px;
 border: 1px solid #ccccc6;
 box-shadow: 0 0 1px 1px #ececf3;
 background-color: #fff;
 cursor: pointer;
 }
 .switch input:after {
 content: '';
 position: absolute;
 width: 12px;
 height: 12px;
 top: 2px;
 left: 3px;
 border-radius: 50%;
 background-color: #ccccc6;
 transition: .2s left, .2s background-color;
 }

初始小圆圈在左侧,当开关状态为开启时,右移,并更新开启状态的背景色

 .switch input:checked:after {
 left: 15px;
 background-color: #36a6fa;
 transition: .2s left, .2s background-color;
 }

下载本文
显示全文
专题