我正在挖掘一些由某人编写的css代码,我发现了这个:
li.hover, li:hover {
}
.hover 和 :hover 之间有什么区别吗?
也许某些浏览器对hover
的行为不同?!
:hover
是伪类,而.hover
是类hover
的选择器。这些符号(:
和.
(不会改变任何其他CSS选择器结构的含义:有关所有详细信息,请参阅W3C CSS Level 3建议。
大概有一些JavaScript来切换hover
类,可能是因为缺乏对"遗留"浏览器中LI元素:hover
支持。我知道IE5/6(ick!(仅支持链接:hover
,但是:
- "现代"GUI 浏览器正确支持
:hover
。
(并且,与往常一样,请确保页面未处于"怪癖模式":-(
快乐编码。
>.hover
只是一个类名(可能用来表示"我[编码人员]想要看起来与悬停项目相同的东西",而:hover
是当鼠标悬停在它上面时的伪类。(就我个人而言,我使用 .hl
而不是 .hover
来做这样的事情(
.hover
是一个普通的类名,就像任何其他类名一样,它没有特殊的含义。
:hover
是您无法自己创建的hover
伪类,仅当用户将鼠标悬停在元素上时才应用。
是的:一个是类(即.hover
(,另一个是伪类(:hover
(。当鼠标悬停在元素上时,伪类将被匹配,当元素具有该类时,将匹配该类。
据推测,该类是由JavaScript添加的。这可能是为了兼容性(某些版本的IE,我相信IE6或IE7,仅支持<a>
元素上的:hover
(,也可能是为了额外的功能(例如粘性突出显示(。