css中link visited hover active伪类的书写顺序

在前端设计中我们经常遇到这样的问题:给链接添加了a:hover,但是鼠标移上去却完全没反应。归根结底是锚伪类书写顺序造成的。

根据CSS就近原则,从底往向上顺序查找,一直找到满足条件的定义为止。

A标签的4个伪类:

:link 适用于未被访问的链接;
:visited 适用于已经访问过的链接;
:hover 鼠标指针指向一个元素,还未激活;
:active 适用于一个元素被选择但未被释放;

W3C制定的CSS21规范中指出:四个伪类的声明顺序应该是:’:link’、’:visited’、’:hover’、’:active’。 A:hover必须放置在A:link和A:visited之后,否则将隐藏A:hover内定义的相同规则。同理,A:active应在A:hover 之后,否则A:active中的相同规则将被隐藏。

需要说明的是在IE浏览器中:hover无论你放在什么位置都有效果,具体差异你可以亲自试一试。

推荐大家以后按照 L-V-H-A 的顺序来定义 <a> 标签的伪类样式, 一个帮助记忆正确顺序的窍门: 记住”LoVe/HAte”原则 , 灰常形象啊。

“css中link visited hover active伪类的书写顺序”的4个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注