html css开关按钮样式,纯CSS实现开关按钮

这篇博客介绍了如何使用CSS3创建现代网页UI中常见的开关按钮,替代传统的checkbox。通过隐藏input框,利用label标签和伪元素实现开关效果,并通过:checked和:active伪类控制点击时的视觉变化。代码简洁,易于理解,适合前端开发者参考。
摘要由CSDN通过智能技术生成

9986da9b8531f33b9ee1f8e386dc8971.gif

上面这种开关按钮在现代网页UI设计中经常出现,代替了以前丑陋的checkbox。在很多UI框架中如elementUI都有组件可以直接使用。但是画出这样一个开关是十分简单的,不需要借助JS代码就可以实现。核心思路就是将原有input框进行隐藏,通过label标签(自带选中功能)和伪元素就可画出开关。

画出开关后实现点击效果就很简单了,利用CSS3提供的伪类:checked,即选中checkbox的时候,让开关实现特定效果,如背景变色,滑块移动。利用:active伪类实现点击开关中间的按钮有一个变大的效果。代码含有注释,可以进行参考html>

html,

body {

margin: 0;

width: 100%;

height: 100%;

display: flex;

justify-content: center;

align-items: center;

}

input {

/* 直接将input默认框隐藏不展示 */

display: none;

}

/* 点击input框时label背景变色 */

input:checked + label {

background: #ff6348;

}

/* 点击input框时label伪元素圆形按钮移动 */

input:checked + label::before {

left: calc(100% - 5px);

transform: translateX(-100%);

}

/* 点击input框时label伪元素圆形按钮放大 */

input:active + label::before {

width: 130px;

}

/* 开关背景样式 */

label {

position: relative;

display: block;

cursor: pointer;

width: 200px;

height: 100px;

border-radius: 100px;

background: linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0)),

#ddd;

box-shadow: 0 0.07em 0.1em -0.1em rgba(0, 0, 0, 0.4) inset,

0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7);

}

/* 开关圆形按钮 */

label::before {

content: '';

position: absolute;

width: 90px;

height: 90px;

background: linear-gradient(#f5f5f5 10%, #eeeeee);

border-radius: 90px;

top: 5px;

left: 5px;

transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);

}

好看的按钮开关

codepen less实现链接,可以进行调试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值