在使用超链接的伪类的时候,要使用如下顺序,否则其中的某些效果将会没有效果
【注释:link和visited的顺序无所谓】
a:link 设置a对象在未被访问前的样式表属性。
a:visited 设置a对象在其链接地址已被访问过时的样式表属性。
a:hover 设置对象在其鼠标悬停时的样式表属性。
a:active 设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式表属性。
原因是:浏览器解释CSS时遵循的“就近原则”。
当几种情况冲突的时候,哪个在最下面哪个优先级就是最高的。
关于这四个伪类的发生时间及相互冲突的情况如下(自己悟出来的)
① link 和 visited实际上是同一个事件,但是选择其中一个的效果,这两个的顺序彼此不影响
② hover 范围中等。它发生时【link或者visited中的一个】必在发生
③ active 是范围最小的,它发生时hover和【link或者visited中的一个】必在发生
为保证不冲突,范围最小的写在最下面,以保证能够优先被浏览器解释。
关于①的一个例子:
一个例子: a:visited{color: green}
a:hover{color: blue}
a:link{color: red}
这样的顺序即使链接是被访问过的,hover也不会有效果,因为link和visited是同一个事件,
这时候hover的效果被link事件(实际是visited的效果绿色)覆盖掉