为什么不a:悬停在没有href属性的锚点上工作?

时间:2009-06-24 20:51:26

标签: css css-selectors hover

在我的应用程序中,当我的锚标记没有href属性时,我无法使用 a:hover css样式。

这有什么理由吗?

6 个答案:

答案 0 :(得分:9)

IE不支持a:将鼠标悬停在没有href的标记中。你可以使用href =“#”或href =“Javascript:void(0);”但最后一个选项可能也不适用于IE6。

或使用Javascript mouseover / mouseout。

答案 1 :(得分:2)

Hover适用于链接。没有HREF,标签只是一个锚。

换句话说......

<a name="target"></a>

是页面内的主持人......

<a href="#target">go there</a>

将是一个链接。

由于ANCHOR在页面上没有可视化表示... a:悬停将毫无用处。

答案 2 :(得分:1)

可能不是答案,但是a:悬停必须在a:link和a:visited之后发生。

请参阅W3Schools

答案 3 :(得分:1)

尝试添加DOCTYPE。如果没有它,IE往往会忽略某些指令。具体来说,锚点标记上的:hover 在IE8中没有HREF就会失败,但在包含XHTML Transitional DOCTYPE时会起作用。

答案 4 :(得分:0)

您使用的是哪种浏览器?这可能是一个怪癖 - 当然href不是必需的,我不认为,即使用遗留<a name>方法在文档中创建链接时。

答案 5 :(得分:0)

:hover选择器的W3C CSS 2.0 specification未提及有关要求href属性的任何内容。

我怀疑这是特定于实现的东西,很可能是IE很傻。如果我没记错的话,微软在它成为CSS标准的一部分之前发明了:hover选择器,它最初只适用于锚点。所以是的,这可能是IE(6)的一个怪癖。

对IE6(所有IE?)的hacky修复可能是使用href="#",它只指向当前页面(因此什么都不做)。