html+css3写switch滑动开关

  • A+
所属分类:Web前端
摘要

    1、形成伪类结构选择器:元素+冒号+布尔值(例”input:checked”)


步骤构思:

1、利用checkbox选中和取消的特性

2、隐藏默认样式,扩大label点击热区

3、用after、before两个伪类元素实现动画

IosButton绿色按钮

实现效果

html+css3写switch滑动开关

代码如下:

<!-- HTML代码 --> <div class="switch-box">     <input id="switchButton" type="checkbox" class="switch" />     <label for="switchButton"></label> </div>   /* CSS代码 */ .switch-box {     width: 48px; } .switch-box .switch {     /* 隐藏checkbox默认样式 */     display: none; } .switch-box label {     /* 通过label扩大点击热区 */     position: relative;     display: block;     margin: 1px;     height: 28px;     cursor: pointer; } .switch-box label::before {     /* before设置前滚动小圆球 */     content: '';     position: absolute;     top: 50%;     left: 50%;     margin-top: -13px;     margin-left: -14px;     width: 26px;     height: 26px;     border-radius: 100%;     background-color: #fff;     box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.06);     /* 通过transform、transition属性控制元素过渡进而形成css3动画 */     -webkit-transform: translateX(-9px);     -moz-transform: translateX(-9px);     transform: translateX(-9px);     -webkit-transition: all 0.3s ease;     -moz-transition: all 0.3s ease;     transition: all 0.3s ease; } .switch-box .switch:checked~label::before {     /* 语义:被选中的类名为"switch"元素后面的label元素里的伪类元素,进行更改css样式 */     /* 形成伪类结构选择器:":"冒号加布尔值"checked" */     /* " Ele1 ~ Ele2 "波浪号在css的作用:连接的元素必须有相同的父元素,选择出现在Ele1后的Ele2(但不必跟在Ele1,也就是说可以并列)  */     -webkit-transform: translateX(10px);     -moz-transform: translateX(10px);     transform: translateX(10px); } .switch-box label::after {     /* after设置滚动前背景色 */     content: "";     display: block;     border-radius: 30px;     height: 28px;     background-color: #dcdfe6;     -webkit-transition: all 0.3s ease;     -moz-transition: all 0.3s ease;     transition: all 0.3s ease; } .switch-box .switch:checked~label::after {     background-color: #13ce66; } 

 

 

ToggleButton绿色按钮

实现效果

html+css3写switch滑动开关

代码如下:

<!-- HTML代码 --> <div class="switch-box">     <input id="switchButton" type="checkbox" class="switch" />     <label for="switchButton"></label> </div>   /* CSS代码 */ .switch-box {     margin: 100px auto;     width: 40px; } .switch-box .switch {     /* 隐藏checkbox默认样式 */     display: none; } .switch-box label {     /* 通过label扩大点击热区 */     position: relative;     display: block;     margin: 1px;     height: 20px;     cursor: pointer; } .switch-box label::before {     /* before设置前滚动小圆球 */     content: '';     position: absolute;     top: 50%;     left: 50%;     margin-top: -8px;     margin-left: -8px;     width: 16px;     height: 16px;     border-radius: 100%;     background-color: #fff;     box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.06);     /* 通过transform、transition属性控制元素过渡进而形成css3动画 */     -webkit-transform: translateX(-9px);     -moz-transform: translateX(-9px);     transform: translateX(-9px);     -webkit-transition: all 0.3s ease;     -moz-transition: all 0.3s ease;     transition: all 0.3s ease; } .switch-box .switch:checked~label::before {     /* 语义:被选中的类名为"switch"元素后面的label元素里的伪类元素,进行更改css样式 */     /* 形成伪类结构选择器:":"冒号加布尔值"checked" */     /* " Ele1 ~ Ele2 "波浪号在css的作用:连接的元素必须有相同的父元素,选择出现在Ele1后的Ele2(但不必跟在Ele1,也就是说可以并列)  */     -webkit-transform: translateX(9px);     -moz-transform: translateX(9px);     transform: translateX(9px); } .switch-box label::after {     /* after设置滚动前背景色 */     content: "";     display: block;     border-radius: 10px;     height: 20px;     background-color: #dcdfe6;     -webkit-transition: all 0.3s ease;     -moz-transition: all 0.3s ease;     transition: all 0.3s ease; } .switch-box .switch:checked~label::after {     background-color: #409eff; } 

 

 

特别说明

1、形成伪类结构选择器:元素+冒号+布尔值(例"input:checked")

2、" Ele1 ~ Ele2 "波浪号在css的语义:作为选择器【选择出现在Ele1后的Ele2(但不必跟在Ele1,也就是说可以并列),连接的前后元素必须有相同的父元素】