【发布时间】:2015-08-16 00:13:46
【问题描述】:
在这段代码中:
<div id="Container">
<span class='first'>First</span>
<span class='second'>Second</span>
<span class='third'>Third</span>
</div>
我想换颜色,当:hover。
- 如果 (
.first:hover) 那么.first { color: red; } - 如果 (
.second:hover) 那么.first, .second { color: red; } - 如果 (
.third:hover) 那么.first, .second, .third { color: red; }
如果没有 JS,这可能吗?我可以接受 CSS Hacks :)
可能的答案:
- @panther 的回答
更难的版本:
<div id="Container">
<span class='first' style='color: red'>First</span>
<span class='second' style='color: green'>Second</span>
<span class='third' style='color: blue'>Third</span>
</div>
- 如果 (
.first:hover) 那么.first { color: pink; } - 如果 (
.second:hover) 那么.first, .second { color: pink; } - 如果 (
.third:hover) 那么.first, .second, .third { color: pink; }
答案:
- @Armfoot 的回答似乎不错:)
【问题讨论】:
-
据我所知,这是不可能的,因为 Less 仍然可以编译成 CSS,而 CSS 无法实现您要查找的内容。 (注意:当我说 CSS 不可能时,我没有包括任何可能的黑客攻击)
-
@Harry 永远不要说永远......也许可以用
@at-root属性完成一些事情,所有这些都有一个共同的类作为父类......我仍在考虑这个问题。 +1 挑战:P -
@Armfoot:这就是为什么我说,我不包括黑客。
-
@Armfoot:这是一个小技巧,没有明确的解决方案。它有时适用于全宽或浮动的块元素(项目之间没有空格)。有的时候可以用,有的时候需要JS。
-
@Armfoot:是的。但是,我仍然会谨慎地建议将其作为答案,因为虽然它可能适用于所指定的确切要求,但如果问题是 XY 问题的情况,则可能不会。