Html 将css规则应用于其他元素
我不认为现在有什么问题可以解决这个问题;但如果有,请指给我看,我会关闭这个 无论如何,假设html是这样的: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
<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中不起作用。他所联系的问题解释了这一点。