我正在挖掘某人写的一些css代码,我发现了这个:
li.hover, li:hover {
}
.hover和:hover之间有什么区别吗?
也许某些浏览器对hover
的行为有所不同?!
答案 0 :(得分:7)
:hover
是psuedo-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>
),或者它可能用于额外的功能(例如粘性突出显示)。