[英]Difficulty with checkbox hack syntax
我要设置标签样式并在选中复选框时显示div。 我已经找到了做一个或另一个的方法,但是没有两个都做,而且我不明白为什么。 请注意,两个示例中的CSS完全相同,并且为:
input {
display: none
}
.layerpic {
height: 100px;
width: 100px;
background: red;
opacity: 1;
float: left;
}
label {
clear: none;
float: left;
}
.xyz input:checked + .layerpic{
opacity: 0.5;
}
.xyz input:checked + label {
font-weight: bold;
}
现在是HTML。 此示例使div受到影响,但标签不受影响。 请注意,唯一的区别是html中的标签位于输入之前:
<div class ="xyz">
<label class="ribs" for="hider2">Hide layer</label>
<input type="checkbox" id="hider2">
<div class="layerpic"> hi
</div>
</div>
此示例允许标签受到影响,但div不受影响:
<div class ="xyz">
<input type="checkbox" id="hider2">
<label class="ribs" for="hider2">Hide layer</label>
<div class="layerpic"> hi
</div>
</div>
谁能解释为什么仅通过翻转最先出现的HTML会影响不同的元素,并且选中此复选框时是否有可能同时影响这两个元素?
input { display: none } .layerpic { height: 100px; width: 100px; background: red; opacity: 1; float: left; } label { clear: none; float: left; } .xyz input:checked+.layerpic { opacity: 0.5; } .xyz input:checked~label { font-weight: bold; }
<div class="xyz"> <input type="checkbox" id="hider2"> <div class="layerpic"> hi</div> <label class="ribs" for="hider2">Hide layer</label> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.