我有几个块,我希望根据所选选项显示它们的其中之一。
我还尝试了其他选择器,比如
我甚至尝试在
如何仅使用HTML和CSS根据当前选定的
编辑:最简单的解决方法是内联JS,但我正在寻找无JS解决方案。
div {
display: none;
}
select[value="test1"] ~ #targ1 {
display: block;
}
select[value="test2"] ~ #targ2 {
display: block;
}
select[value="test3"] ~ #targ3 {
display: block;
}
Dropdown list:
<select>
<option value="test1">Test a</option>
<option value="test2">Test b</option>
<option value="test3">Test c</option>
</select>
<div id="targ1">Test 1</div>
<div id="targ2">Test 2</div>
<div id="targ3">Test 3</div>
select[selected] ~ div
或option:focus #targ1
。我甚至尝试在
select
元素上添加一个::after
伪元素,但是在option
标签内的div
会被忽略或表现奇怪。看起来select
和option
标签有一些我在w3schools中没有找到的规则。如何仅使用HTML和CSS根据当前选定的
option
显示和隐藏div
元素?编辑:最简单的解决方法是内联JS,但我正在寻找无JS解决方案。
[data-value=test1] ~ #test1 {
color: red;
}
[data-value=test2] ~ #test2 {
color: green;
}
[data-value=test3] ~ #test3 {
color: blue;
}
<select onchange="this.dataset.value = this.value" data-value="test1">
<option value="test1" checked>Test a</option>
<option value="test2">Test b</option>
<option value="test3">Test c</option>
</select>
<div id="test1">Target 1</div>
<div id="test2">Target 2</div>
<div id="test3">Target 3</div>