如果你喜欢scss,那么代码更加简洁
@mixin borderRadius($radius:20px) { border-radius: $radius; border-top-left-radius: $radius; border-top-right-radius: $radius; border-bottom-left-radius: $radius; border-bottom-right-radius: $radius; } $duration: .4s; $checkedColor: #64bd63; .mui-switch { width: 52px; height: 31px; position: relative; border: 1px solid #dfdfdf; background-color: #fdfdfd; box-shadow: #dfdfdf 0 0 0 0 inset; @include borderRadius(); background-clip: content-box; display: inline-block; -webkit-appearance: none; user-select: none; outline: none; &:before { content: ''; width: 29px; height: 29px; position: absolute; top: 0px; left: 0; @include borderRadius(); background-color: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); } &:checked { border-color: $checkedColor; box-shadow: $checkedColor 0 0 0 16px inset; background-color: $checkedColor; &:before { left: 21px; } } &.mui-switch-animbg { transition: background-color ease $duration; &:before { transition: left 0.3s; } &:checked { box-shadow: #dfdfdf 0 0 0 0 inset; background-color: $checkedColor; transition: border-color $duration, background-color ease $duration; &:before { transition: left 0.3s; } } } &.mui-switch-anim { transition: border cubic-bezier(0, 0, 0, 1) $duration, box-shadow cubic-bezier(0, 0, 0, 1) $duration; &:before { transition: left 0.3s; } &:checked { box-shadow: $checkedColor 0 0 0 16px inset; background-color: $checkedColor; transition: border ease $duration, box-shadow ease $duration, background-color ease $duration*3; &:before { transition: left 0.3s; } } } }链接文章
https://www.html.cn/archives/9274
https://segmentfault.com/a/1190000003711140
【CSS美化单选框 radio 、多选框 checkbox 和 switch开关按钮】
推荐阅读
- CSS样式定位
- CSS Border 使用分享
- 60个非常实用的CSS代码片段,千万要收藏好了
- 用PS给证件照进行美化
- 微信终极美化 微信怎么设置主题背景
- 前端:html+css+javascript 手把手教大家编写贪吃蛇小游戏
- 教你如何美化茶席
- CSS-in-JS 是恶魔还是天使?
- 纯css流畅loading加载动画
- 解决前端一切布局的神器:CSS3 Flex弹性布局