.hover和:hover有什么区别?

时间:2012-01-04 04:52:47

标签: css hover

我正在挖掘某人写的一些css代码,我发现了这个:

li.hover, li:hover {

}

.hover和:hover之间有什么区别吗? 也许某些浏览器对hover的行为有所不同?!

4 个答案:

答案 0 :(得分:7)

:hoverpsuedo-class,而.hover是类hover的选择器。这些符号(:.)不会改变任何其他CSS选择器结构的含义:有关所有详细信息,请参阅W3C CSS Level 3 Recommendation

可能有一些JavaScript要切换hover类,可能是因为在“遗留”浏览器中缺少:hover对LI元素的支持。我知道IE5 / 6( ick!)仅支持:hover链接,但是:

(并且,与往常一样,确保“quirksmode”中的页面: - )

快乐的编码。

答案 1 :(得分:5)

.hover只是一个类名(可能用来表示“我[编码人员]希望看起来与悬停项目相同的东西”,而:hover是psuedo-class for the when鼠标已经结束了。(我个人使用.hl代替.hover这样的事情)

答案 2 :(得分:3)

.hover是一个普通的类名,就像任何其他类名一样,它没有特殊含义 :hover是您无法自己创建的hover伪类,仅当用户使用鼠标悬停在元素上时才会应用。

答案 3 :(得分:2)

是的:一个是一个类(.hover),另一个是伪类(:hover)。当鼠标悬停在元素上时,将匹配伪类,并且当元素具有该类时,将匹配该类。

据推测,该类是通过JavaScript添加的。这可能是为了兼容性(某些版本的IE,我相信IE6或IE7,仅支持:hover元素上的<a>),或者它可能用于额外的功能(例如粘性突出显示)。