Html 将css规则应用于其他元素

Html 将css规则应用于其他元素,html,css,css-selectors,Html,Css,Css Selectors,我不认为现在有什么问题可以解决这个问题;但如果有,请指给我看,我会关闭这个 无论如何,假设html是这样的: <div> <div class="a" style="float:left;"></div> <div class="b" style="float:left;"></div> <div class="c" style="float:left;"></div> <div style

我不认为现在有什么问题可以解决这个问题;但如果有,请指给我看,我会关闭这个

无论如何,假设html是这样的:

<div>
  <div class="a" style="float:left;"></div>
  <div class="b" style="float:left;"></div>
  <div class="c" style="float:left;"></div>
  <div style="clear:both;"></div>
</div>
我知道我可以用javascript中的悬停事件来实现这一点;但我希望有一个css唯一的解决方案。如果您可以指出css规范中的某个部分说这是不可能的,那么我仍然会将其标记为一个答案。(尽管我承认我没有读整件事;我确实读了其中的一些)

编辑:每个人标记的答案似乎都有效,并且是正确的答案;但它们在Chrome/Safari中不起作用(但IE8很好……见图:P)。请看这里:

我能定义什么css规则来改变悬停时其他元素的样式吗

在这种情况下可以使用(因为b和c跟在a后面)

您还可以使用css3中的

.a:hover ~ div {}
尽管这仍然要求悬停的元素是第一个

我知道我可以用javascr中的点击事件来实现这一点

鼠标悬停事件更有意义

如果你能指出css规范的某个部分说这是不可能的

规格说明告诉您什么是可能的。他们很少陈述不能做的事情(因为提供不可能做的事情的详尽列表会使所有规范变得庞大)

我能定义什么css规则来改变悬停时其他元素的样式吗

在这种情况下可以使用(因为b和c跟在a后面)

您还可以使用css3中的

.a:hover ~ div {}
尽管这仍然要求悬停的元素是第一个

我知道我可以用javascr中的点击事件来实现这一点

鼠标悬停事件更有意义

如果你能指出css规范的某个部分说这是不可能的

规格说明告诉您什么是可能的。他们很少说明不能做的事情(因为提供不可能做的事情的详尽列表会使所有规范变得庞大)

使用以下方法:

.a:hover + .b,
.a:hover + .b + .c,
{
    // styles of .b and .c
}
有关兄弟组合器的更多信息:

请使用以下选项:

.a:hover + .b,
.a:hover + .b + .c,
{
    // styles of .b and .c
}

有关兄弟组合器的更多信息:

Myabe它将对您有所帮助:

.a:hover + .b {
     background-color:red;
 }
.a:hover + .b + .c {
    background-color:red;
 }

观看结果:

Myabe它将对您有所帮助:

.a:hover + .b {
     background-color:red;
 }
.a:hover + .b + .c {
    background-color:red;
 }

观察结果:

已知WebKit在
:悬停
~
方面存在问题。我不确定这在最新的Safari和Chrome版本中是否已经修复。任何标记为css3的东西都应该被认为在很多浏览器中暂时存在问题:)你对悬停事件的看法绝对正确,而不是JavaScript中的click事件。我发帖时已经很晚了。感谢您的详尽回答。将标记作为答案;但是@BoltClock是对的。这在Chrome和Safari中不起作用。他链接到的问题解释了.WebKit已知在
:hover
~
方面存在问题。我不确定这在最新的Safari和Chrome版本中是否已经修复。任何标记为css3的东西都应该被认为在很多浏览器中暂时存在问题:)你对悬停事件的看法绝对正确,而不是JavaScript中的click事件。我发帖时已经很晚了。感谢您的详尽回答。将标记作为答案;但是@BoltClock是对的。这在Chrome和Safari中不起作用。他所联系的问题解释了这一点。