a标签的4个伪类


a标签的4个伪类分别是:

:link ( 有链接属性的时候显示 -- href 属性 )

:visited ( 链接地址被访问过 )

:hover ( 鼠标移动到DOM节点上面 )

:active ( 鼠标点击瞬间 )

-> link & visited ?

/*css*/
a:link{
    color:green;
}
a:visited{
    color:red;
}
<a href="http://www.baidu.com">显示了:visited的样式</a>
<a href="#321312">显示了:link的样式</a>
<a href="#">显示了:visited的样式</a>
<a href="javascript:void(0)">显示了:link的样式</a>
<a href="">显示了:visited的样式</a>
<a>没有任何样式</a>

由上面的demo测试可以看出,标签拥有 href 属性是显示:link 或者 :visited的前提,如果 href 属性是一个正常的地址连接、为空、为"#"符号则显示visited样式,如果为"#"符号后面加任意一字符或者字符串、javascript:void(0)表达式则显示:link的样式:

-> hover & active ?

/*css*/
a:hover{
    color:red;
}
a:active{
    color:green;
}
<!--HTML-->
<a href="http://www.baidu.com">:active要放在:hover后面,点击时:active才起效</a>

上面的demo测试,:active伪类需要放在:hover伪类后面,因为当鼠标点击a标签的时候触发了:active同时也触发了:hover,如果:hover写在:active就会把:active的显示样式给覆盖,就是永远也看不到:active的点击样式

-> hover & visited ?

/*css*/
a:visited{
    color:yellow;
}
a:hover{    
    color:green;
}
<!--HTML-->
<a href="http://www.baidu.com">:visited需要放置在:hover前面</a>

上面的demo测试,:visited伪类需要放置在:hover前面,因为如果将:hover放置在:visited之前,:visited触发的链接会一开始就将:hover覆盖。

【总结】
  对于a标签的四个伪类,就像是css的一条规则“后面覆盖签名的样式”,以上总结如果这四种伪类同时并存的话,其书写的顺序应该是 l ( :link ), v ( :visited ) , h ( :hover ) , a ( :active )。
本文转自HP_NiuYear

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容