【发布时间】:2012-01-09 08:51:51
【问题描述】:
Safari 和 Chrome,以及 Opera 和 Firefox,可以处理 :hover 伪类和相邻兄弟选择器:
a:hover + div {}
这行得通。
但是,当添加另一个相邻兄弟时:
div:hover + a + div {}
Webkit 崩溃了。
但是,如果您先将鼠标悬停在 <a> 上,然后然后将鼠标悬停在 <div> 上,则样式会按应有的方式应用。
我更困惑,因为如果你添加:
div:hover ~ div {}
无论是否声明了样式,它都会按应有的方式开始工作。
我在以下位置看到了这个问题:
- 谷歌浏览器 15.0.874.121
- Safari 5.1.1
适用于 OS X。
有什么想法吗?
【问题讨论】:
-
是的,这是一个 WebKit 错误。我偶尔会遇到它。除了
:hovered 和它的父元素之外的元素没有更新。恐怕你无能为力。 -
有人在这里观察到完全相反的行为:stackoverflow.com/questions/5061509/… 无论哪种方式,这绝对是一个 WebKit 错误,而且显然还没有完全修复。
-
我在more recent question 上找到了一个更优雅的解决方案,所以我在这里发布了一个类似的答案。
-
似乎也适用于 :checked 选择器。
标签: css google-chrome safari webkit css-selectors