css:使用label控制checkbox不生效的原因
2023-09-27 14:27:10 时间
今天有个简单的需求,就是实现表单底部的勾选知情同意书的效果,如图:
我想着玩意做了百八十遍岂不是手到擒来,于是我写下了这样的代码:
<!DOCTYPE html>
<html>
<head>
<title>测试</title>
<style type="text/css">
label {
display: block;
width: 20px;
height: 20px;
border: 1px solid #666;
}
input {
display: none;
}
input:checked + label {
border: 1px solid #f00;
}
</style>
</head>
<body>
<div>
<label for="agree"></label>
<input type="checkbox" name="agree" id="agree">
</div>
</body>
</html>
这,我点击 label 怎么没有改变 border 为 #f00,我开始慌了。。
解决
最后发现,input:checked + label
这里的 + 是代表兄弟元素,兄弟元素一定是在该元素的下面,也就是我换一下 input 和 label 标签的位置就好了
<body>
<div>
<input type="checkbox" name="agree" id="agree">
<label for="agree"></label>
</div>
</body>
这件事告诉我一个道理,遇到 bug 不要慌,一步一步缩小 bug 范围,实在不行写一个小 demo,最后你就知道问题出在哪了~
相关文章
- Linux中进程控制块PCB-------task_struct结构体结构
- 自动化系导航与控制研究所
- 【一级倒立摆】基于EKF和UKF能量控制的环形一级倒立摆的控制模型仿真
- 【MATLAB教程案例74】通过MATLAB编程实现基于Qlearning强化学习的控制机器人行走迷宫
- Java之控制反转和依赖注入
- 《Android游戏开发详解》一1.7 控制流程第1部分——if和else语句
- 赛门铁克最新研究:只要联网2分钟,你的智能设备就被黑客控制
- SwiftUI PDF 通过按钮控制显示PDF文件
- SwiftUI实战之如何控制状态栏Status Bar 隐藏与显示
- 并发控制的概念
- GLUT Tutorials 7: GLUT高级键盘控制
- 5000英镑就可买到控制美国核武库的同款IBM电脑
- 有了大数据云计算,就能控制经济规律?
- 【离线语音专题④】安信可VC离线语音开发板二次开发语音控制LED灯
- CSS控制显示超出部分,用省略号显示
- Windows 中的 UAC 用户账户控制