【发布时间】:2021-10-14 19:57:33
【问题描述】:
我使用复选框来修改其他元素的样式。复选框是否有可能影响网站的其他类/元素。
我在下面有一个示例 html 代码,而不是更改标签元素,是否可以更改第一个 div 的样式。
ul li {
display: inline-block;
}
ul li input[type="checkbox"]:checked+label {
border: 2px solid gray;
background-color: gray;
color: #fff;
transition: all .2s;
}
ul li {
padding: 20px;
margin: 20px;
}
ul li input[type="checkbox"] {
display: absolute;
}
ul li input[type="checkbox"] {
position: absolute;
opacity: 0;
}
ul li label {
padding: 20px;
cursor: pointer;
}
<div class="modify-box">
BOX TO CHANGED
</div>
<ul>
<li>
<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
<label for="vehicle1"> Bike</label><br>
</li>
<li>
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
<label for="vehicle2"> Car</label><br>
</li>
<li>
<input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
<label for="vehicle3"> Boat</label><br>
</li>
</ul>
【问题讨论】:
-
如果你想要第一个父 div 那么 css 没有父选择器
-
你还需要使用Javascript
-
不,这是不可能的。当前的 CSS 只允许在 DOM 结构中向下和向右选择,而不是向上或向左选择。另见:Is there a CSS parent selector?
-
但是如果您可以修改 HTML 结构,那么您可以将实际的复选框输入放在 元素之前 - 无论如何它们在视觉上是隐藏的,标签可以保留在它们所在的位置. 然后您可以根据复选框的状态选择 div 元素。