曾经在调试自己的个人博客时发现过一个问题,链接的文字只有在 IE6 下当鼠标移到上面的时候会变色,在 IE7、IE8 和其它浏览器里都不变色,感觉很奇怪。
先来看一下我原来的代码:
- HTML code
DOCTYPE html>
<style type="text/css">
a:hover{color:red;}
a:link{color:black;}
a:visited{color:blue;}
a:active{color:green;}
< SPAN>style>
<a href="#">test test test< SPAN>a>
页面为标准模式(声明 DOCTYPE 为 即可,稍后会在“浏览器兼容性”系列中详细介绍浏览器模式)。
以上代码中,我的本意是想让文字在没有访问 (:link) 的时候是黑色,在悬停在文本上方 (:hover) 时是红色,点击到文本上方未释放鼠标时 (:active) 是绿色,而访问过 (:visited) 以后就变成了蓝色。
但是,事与愿违,在 IE6 下,当鼠标移到链接上时,文字会变红,而其他浏览器中都还是黑色。
相信大家也曾经遇到过类似的问题吧。
后来,查了一下W3C标准--
5.11.2 和
5.11.3 才知道,原来
标签的伪类样式定义是有顺序要求的。
简单的介绍一下A 标签的4个伪类:
1. ':link' :适用于未被访问的链接;
2. ':visited' :适用于已经访问过的链接;