日夜间切换开关
创作时间:
作者:
@小白创作中心
日夜间切换开关
引用
CSDN
1.
https://blog.csdn.net/justliu1989/article/details/143326117
本文将介绍如何使用CSS实现一个日间/夜间模式切换开关按钮。这个功能在现代网页设计中非常常见,能够提升用户的使用体验。
整体效果
实现这个功能主要用到了以下CSS知识点:
transition过渡属性:before和:after伪元素选择器content属性:checked选择器appearance自定义外观属性
核心思路是自定义多选框外观,通过过渡动画切换日夜模式图标,并改变提示文字。这种效果可以增强用户的交互体验。
核心代码
HTML 代码
<label class="label78">
<input type="checkbox" class="checkbox78" />
<div class="status78"></div>
</label>
按钮开关主体代码结构。
CSS 部分代码
.label78{
position: relative;
cursor: pointer;
overflow: hidden;
}
.checkbox78{
width:90px;
height:40px;
background-color:#000000;
border-radius:20px;
margin:0;
cursor: pointer;
box-sizing: border-box;
transition: all 0.4s linear;
appearance: none;
-webkit-appearance: none;
}
.status78{
width:16px;
height:16px;
background-color: transparent;
box-shadow: inset -6px -4px 0 yellow;
border-radius:50%;
position: absolute;
right:17px;
top:12px;
transition: all 0.4s linear;
display: flex;
align-items: center;
justify-content: center;
}
.status78:after{
content:'夜间';
font-size:14px;
font-weight: bold;
color:#ffffff;
letter-spacing:3px;
line-height:1;
position: absolute;
left:-38px;
top:1px;
}
.checkbox78:checked{
background-color:#ebebeb;
}
.checkbox78:checked+.status78{
width:16px;
height:16px;
box-shadow: inset -16px -16px 0 red;
right:17px;
}
.checkbox78:checked+.status78:after{
content:'日间';
color:#000000;
}
- 定义
label标签以及input标签的基本样式,定义input标签的type属性为type="checkbox"。 - 通过
appearance自定义外观属性,定义多选框外观效果,并且给多选框添加过渡属性transition: all 0.4s linear;,设置多选框所有属性可进行过渡动画进行。 - 定义
.status78基本样式,通过box-shadow阴影效果来实现小月亮图标,同样给status78添加过渡属性transition: all 0.4s linear;,设置所有属性可进行过渡动画进行。 - 基于
.status78创建:after伪元素以及基本样式,配合content属性给按钮开关添加文字元素。 - 利用
:checked选择器,当开关按钮被选中时,按钮背景颜色过渡,并且改变.status78月亮样式,通过改变box-shadow阴影属性值以及相关基本样式,让月亮小图标过渡变化成小太阳图标,以及变化.status78:after伪元素中的content属性,变化文字提示内容以及文字颜色。
特别说明: appearance 属性的浏览器兼容性不是很高,注意补充 -webkit-appearance 浏览器兼容效果。
完整代码
HTML 页面
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<title>日夜间切换开关</title>
</head>
<body>
<div class="app">
<label class="label78">
<input type="checkbox" class="checkbox78" />
<div class="status78"></div>
</label>
</div>
</body>
</html>
CSS 样式
.app{
width:100%;
height:100vh;
background-color:#ffffff;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.label78{
position: relative;
cursor: pointer;
overflow: hidden;
}
.checkbox78{
width:90px;
height:40px;
background-color:#000000;
border-radius:20px;
margin:0;
cursor: pointer;
box-sizing: border-box;
transition: all 0.4s linear;
appearance: none;
-webkit-appearance: none;
}
.status78{
width:16px;
height:16px;
background-color: transparent;
box-shadow: inset -6px -4px 0 yellow;
border-radius:50%;
position: absolute;
right:17px;
top:12px;
transition: all 0.4s linear;
display: flex;
align-items: center;
justify-content: center;
}
.status78:after{
content:'夜间';
font-size:14px;
font-weight: bold;
color:#ffffff;
letter-spacing:3px;
line-height:1;
position: absolute;
left:-38px;
top:1px;
}
.checkbox78:checked{
background-color:#ebebeb;
}
.checkbox78:checked+.status78{
width:16px;
height:16px;
box-shadow: inset -16px -16px 0 red;
right:17px;
}
.checkbox78:checked+.status78:after{
content:'日间';
color:#000000;
}
以上就是实现日间/夜间模式切换开关的所有代码,希望对你有一些帮助或者启发。
热门推荐
零基础AI实习:从入门到掌握AI的完美指南
打针和输液的区别
常见交通事故责任认定详细图解
INFJ人格类型:特征、著名人物及希特勒是否属于该类型
如何有效减肥?送你一份健康减肥指南,请查收!
国际物流中九类危险品的分类与运输注意事项详解
八卦与五行的对应关系(五行与八卦之间的关联探讨)
跃层式住宅和复式住宅的区别及优劣势分析
文学的青春表达
尤二姐与尤氏感情如何?她死后尤氏借一人之手狠狠报复了凤姐
爆发力训练:提升生活品质的5个动作
为什么清朝北洋舰队的经费都要靠盛宣怀?这个晚清首富创造了什么
AI新闻创作全攻略:掌握高效写作技巧与方法,全面提升内容质量与传播效果
胃炎吃什么药好的快?专业医生详解五大类药物
红楼梦中薛蟠为何要打死冯渊?书中是如何评价的?
2024汉中油菜花观赏指南:推荐8个区县12处最美打卡点!
同人文:太始神帝的崛起与觉醒
门牙有裂纹能撑几年?三到五年具体看裂纹情况~我来教你怎么判断牙隐裂轻重!
沉积物检测详解
古诗配画创作指南:从选材到完成的全方位详解
重视心电图检查 守护“心”健康
保护环境的名人名言:法律视角下的绿色智慧
磷酸铁锂电池和三元锂电池哪个好?内行人说出真相,后悔才知道…
地产商永续债停息惹关注丨永续债债券懒人包:特点及投资风险
太空豆的种类特性及选购技巧,多钓友不曾注意
物业能不能禁止园区跳广场舞?
iOS17.6与iOS18:哪个版本更适合你
贝克勒经营企业品牌法律实务分析
什么是 TTF 文件扩展名?
汉服起源与历史探析