【问题标题】:Why doesn't this CSS selector work: a:hover ~ span?为什么这个 CSS 选择器不起作用:a:hover ~ span?
【发布时间】:2011-06-30 23:55:04
【问题描述】:
a:hover + span { background:yellow; }
a:hover > span { background:yellow; }
a:hover ~ span { background:yellow; }

前两个选择器工作得很好。但是,第三个选择器不起作用?

演示:http://jsfiddle.net/UAHw7/

为什么?


更新:我启动了所有浏览器...

Opera 11 - 作品
Safari 5 - 作品
Firefox 3.6 - 工作
IE9 RC - 作品
Chrome 9 - 不工作

然后是 Chrome 问题...


注意:由于 Chrome 不再包含此错误,因此此问题已过时。

【问题讨论】:

  • @tenfour 当您将 ANCHOR 悬停时,所有三个 SPAN 元素都应亮起黄色...
  • 很奇怪。有趣的是,如果你放弃 :hover 伪类,它会起作用。
  • 对我有用...也许您的浏览器不支持 CSS3? (甚至为了避免混淆而将其设为#FF00FF,并且在 FF4 上完美运行)
  • @Brad 在 Chrome 9 中不起作用
  • @Pekka:CSS3“正式发布”了吗?可能只是某些浏览器已经实现但还没有完全实现它?

标签: css google-chrome webkit css-selectors


【解决方案1】:

解决方案:

Chrome 有一个:hover 问题。尤其是<a>

  1. :hover 在 Chrome 中不起作用:
    <a>Link</a>
  2. :hover 在 Chrome 中工作:
    <a href="#">Link</a>
  3. :hover 在 Chrome 中工作:
    <a href="javascript:void(0);">Link</a>

注意:您可以使用href="javascript:void(0)" 代替href="#"。我更喜欢javascript:void(0)

【讨论】:

  • 适用于 Chrome 23,即使是第一个 1 即 <a>Link</a>
【解决方案2】:

看起来像一个与使用 :hover 伪类有关的 Webkit 错误。

对我来说很好用

  • 在 FF 3.6.13 中
  • 在所有浏览器的 IE 8 中
  • 在 Opera 11 中

这对我不起作用

  • 在 Chrome 9 中
  • 在 Safari 5.0.3 中

可能具有文件价值。

【讨论】:

  • 我不得不嘲笑“所有浏览器”。什么,你暗示 IE 并不总是合规的? :咧嘴:
  • 似乎是 Webkit 问题。这里已经提到过:code.google.com/p/chromium/issues/detail?id=30753#c4
  • @Šime 是的,看起来像它
  • 太糟糕了...A:hover ~ B 是一个很好的功能,现在我无法使用它,因为愚蠢的 Chrome :)
  • @Šime 是的,这很不寻常! IE 8 可以做到这一点,但尖端的 Chrome 却没有。不会每天都发生。 :)
【解决方案3】:

在我看来,您不能将通用兄弟选择器~ 与伪类:hover 结合起来;请注意,如果您将选择器更改为a ~ span,那么span 的两个元素都会变为黄色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多