当前位置:网站首页>通过点击CheckBox实现背景变换小案例
通过点击CheckBox实现背景变换小案例
2022-08-03 12:07:00 【_rosy】
今天给大家介绍一个例子,例子是实现背景的切换的,这里通过使用input标签中的checkbox中的checked实现,我觉得还是一个不错的例子,分享给大家。
在看代码之前先介绍一些知识点:
CheckBox的伪类选择器:checked伪类仅仅适用于单选按钮或则复选框,所以如果在其他类型的元素定义checked伪类,checked会失效。
css中 ‘+’号的使用:
- 二者有相同的父元素,
- 选择紧接在另一个元素后的元素,即是相邻的选择器
总结上面两点,当checked伪类选择器和+配合使用时 :+ 介于两个选择器之间,当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中。也可以理解为在为类选择器选择的时候,使用原始的
input:checked+class/label(每当选中时,改变其后class/label中的内容样式)
本案例通过点击checkbox实现选择效果,点击了第一下表示选中了这个id叫modeCheckBox的多选框,此时显示黑夜,内容为月亮标记,再点一下表示取消选择,恢复为默认的太阳。
OK知识点介绍完毕,下面你们就直接copy代码去浏览器上面跑一跑吧,感受一下css的奇妙
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input id="modeCheckBox" type="checkbox">
<!-- 通过点击,记住勾选和不勾选的两个状态,刚好对应浅色模式和深色模式两种状态 -->
<div class="content">
<label id="modeBtn" for="modeCheckBox">点我切换</label>
<h1>深浅色模式切换</h1>
</div>
</body>
</html>
<style>
body,
html {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
overflow: hidden;
}
body {
box-sizing: border-box;
}
.content {
padding: 10px;
transition: background-color 1s, color 1s;
}
#modeCheckBox {
display: none; /*//将大盒子外面的checkbox隐藏起来 */
}
#modeCheckBox:checked+.content {
/* 通过 checkbox 的伪类选择器checked,点击checkbox就会触发这个伪类 */
background-color: black;
color: white;
transition: all 1s;
}
#modeBtn {
font-size: 2rem;
float: right;
}
#modeBtn::after {
content: '';
}
#modeCheckBox:checked+.content #modeBtn::after {
content: '';
}
</style>边栏推荐
- [深入浅出]三位数排序
- 长城简漫·暑期安全篇⑤ 这个强,不能逞
- 小身材有大作用——光模块基础知识(一)
- 【MySQL功法】第2话 · 数据库与数据表的基本操作
- LyScript implements memory stack scanning
- 【MySQL功法】第5话 · SQL单表查询
- bash if条件判断
- bash for循环
- Explain the virtual machine in detail!JD.com produced HotSpot VM source code analysis notes (with complete source code)
- 利用ChangeStream实现Amazon DocumentDB表级别容灾复制
猜你喜欢

苹果发布 AI 生成模型 GAUDI,文字生成 3D 场景

"Digital Economy Panorama White Paper" Financial Digital User Chapter released!

GET 和 POST 有什么区别?

Matlab学习13-图像处理之可视化GUI程序

mysql advanced (twenty-four) method summary of defense against SQL injection

技术总监需要会些什么?也太难了!

Matlab学习10-图像处理之傅里叶变换

信创建设看广州|海泰方圆亮相2022 信创生态融合发展论坛

基于英雄联盟的知识图谱问答系统

第四周学习 HybridSN,MobileNet V1,V2,V3,SENet
随机推荐
viewstub 的详细用法_pageinfo用法
Matlab学习13-图像处理之可视化GUI程序
4500 words sum up, a software test engineer need to master the skill books
fastposter v2.9.0 programmer must-have poster generator
dataset数据集有哪些_数据集类型
html+css+php+mysql实现注册+登录+修改密码(附完整代码)
微信小程序获取手机号
零信任的基本概念【新航海】
如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据
LeetCode-1161. 最大层内元素和
bash while循环和until循环
最牛逼的集群监控系统,它始终位列第一!
利用ChangeStream实现Amazon DocumentDB表级别容灾复制
What knowledge points do you need to master to learn software testing?
bash for循环
mysql进阶(二十四)防御SQL注入的方法总结
【MySQL功法】第5话 · SQL单表查询
ThreadLocal源码解析及使用场景
深度学习:文本CNN-textcnn
想学自动化测试网课哪个好?过了人告诉你:适合自己的才是最重要