【发布时间】:2019-12-02 13:25:38
【问题描述】:
考虑以下 HTML 结构:
<input type=radio name=picker value=foo> <input type=radio name=picker value=bar> etc
<ul>
<li class=foo>Foo #1</li>
<li class=bar>Bar #1</li>
<li class=foo>Foo #2</li>
<li class=bar>Bar #2</li>
</ul>
我想为那些与当前选择的单选按钮匹配的列表项设置样式。如果所有可能的单选按钮值都是硬编码的,则此方法有效:
input:checked[value=foo] ~ ul li[class~=foo] {
background: blue;
color: white;
}
input:checked[value=bar] ~ ul li[class~=bar] {
background: blue;
color: white;
}
有什么方法可以说“input:checked”然后“li[class~=[the value of the current-selected input]]”?假设单选按钮和列表项都是动态生成的。
如果一切都失败了,我也可以动态生成 CSS,但这似乎不理想。
【问题讨论】:
-
@Awais 是的,这不仅仅是简单的同级选择器所能做到的。
-
解决了你的问题吗
-
你不能用 CSS 做到这一点
-
如果下一个兄弟选择器不能解决您的问题(如第一条评论中的链接),您应该尝试使用 javascript