日期:2014-05-17  浏览次数:20734 次

CSS中<a>标签伪类顺序
<!DOCTYPE html>
<style type="text/css">
a:link{color:black;}
a:visited{color:blue;}
a:hover{color:red;}
a:active{color:green;}
</style>
<a href="#"> content </a>

根据CSS就近原则,从底往向上顺序查找,一直找到满足条件的定义为止。
A标签的4个伪类:
  1. ':link'    :适用于未被访问的链接;
  2. ':visited' :适用于已经访问过的链接;
  3. ':hover'   :鼠标指针指向一个元素,还未激活;
  4. ':active'  :适用于一个元素被选择但未被释放;


W3C制定的CSS21规范中指出:四个伪类的声明顺序应该是:':link'、':visited'、':hover'、':active'。 A:hover必须放置在A:link和A:visited之后,否则将隐藏A:hover内定义的相同规则。同理,A:active应在A:hover 之后,否则A:active中的相同规则将被隐藏。原因应该就在于浏览器解释CSS时遵循的“就近原则”。

推荐大家以后按照 L-V-H-A 的顺序来定义 <a> 标签的伪类样式。这样在各个浏览器里就都一样了。可以记这两个词:LOVE--HATE。

参考:
http://topic.csdn.net/u/20100630/14/7223adb9-3d4b-4869-9eaa-a424badeaeac.html