2010-11-17 54 views
9

如果我使用一个类的正常股利,可我写的像CSS:css:每个类都支持:悬停状态吗?

.messagebc:hover { 
... 
} 

是否合法?

+0

需要注意的是极少数大型网站还支持IE 6。我不会去你的方式,以确保你的镜像功能,它是非常重要的。 – Webnet 2010-11-17 14:49:37

回答

13

这是ineffiecient使用:悬停在非链接元素。

避免:为IE客户端的非链接元素使用hover伪选择器。

如果你使用:在非锚 元素徘徊,在IE7和IE8 测试页面,以确保您的页面是可用的。如果 您发现:悬停导致 性能问题,请考虑 有条件地使用JavaScript onmouseover事件处理程序为IE 客户端。

:hover伪选择器的非连接元件是一个非常ineffiecient选择器(例如): 例如:

h3:hover {...} 
.foo:hover {...} 
#foo:hover {...} 
div.faa :hover {...} 

的:悬停在非锚定元件是已知的伪选择在某些情况下使IE7和IE8变慢*。当不使用严格的文档类型时,IE7和IE8将忽略:悬停在锚点以外的任何元素上。当使用严格的文档类型时,将鼠标悬停在非锚上可能会导致性能下降。

More info on un-effiecient selectors

3

是的,但是在IE6中,只能在ANCHOR元素上设置:hover

4

为什么你只是试过它?是的,你可以(在所有现代浏览器中,IE6知道:如果我记得的话,只能在a上悬停)。

+0

你记得没错。所以问题更多:是否所有元素都支持:悬停? – Baju 2010-11-17 13:00:58

3

只有IE6不支持它比<a>其他元素,但可以固定一个简单的JavaScript:ie7.js

4

是的,你可以使用:hover在现代浏览器(IE7 +)的所有元素。 虽然IE6支持:hover只适用于<a>元素,但您应该为您写html和css,以便您不需要使用js-patches(例如,在列表菜单中,只需使用<li><a href="#">Link</a></li>,而不是<a><li><a>并将:hover分配给链接元素,这应该是关键。)

2

每个当前的浏览器都会支持它。如果您需要它在IE6等较旧的浏览器中工作,请查看@ Willem的链接。