:link,:visited,:focus,:hover,:active的用法

:link,:visited,:focus,:hover,:active的用法
  •  
  • :link 与 :visited 在样式文件中的顺序可以随便放置。而focus, hover,active这几个,如果你设置的顺序不同,会直接影响样式的显示效果,他们之间的顺序为:
  •  
  • a:link->a:visited ->a:focus ->a :hover -> a:active
  •  
  •  
  • 一、:link,:visited,:focus,:hover,:active的含义
  •  
  •  
  • 1、:link代表为访问链接的样式,所以只要你是超链接,且未被访问过,则链接都会按照你设定的样式显示,所以它的位置顺序无所谓。
  •  
  • 2、:visited代表链接访问后的样式,则链接一旦被访问,则之后它的样式就会是你所设置的visited样式
  •  
  • 3、:focus 代表的是获取焦点时的样式,有人说啥是获取焦点时的样式,这个我们可以通过tab键来查看,一旦链接获取了焦点,则它的样式就是你设置的focus样式
  •  
  • 4、:hover 代表的是你光标经过某一元素时的样式,如果将此样式放在:focus之后,则当链接获取焦点时,显示:focus样式,当光标经过此链接时,会显示hover的样式,因为hover排在后,会覆盖focus样式。
  •  
  • 5、如果:hover排在前,:focus排在后,则当光标获得焦点时显示:focus的样式,但当光标经过链接时,样式并未显示:hover的样式,而是继续是:focus的样式,因为应用的focus样式在hover之后,覆盖了前面的样式。
  •  

    二、CSS中若存在a{……}的定义

     


    1、如果a:link{}也存在,那么不管a{}放到哪里,a{}和a:link{}冲突的属性都会采用a:link{}的,不冲突的属性若存在a{}中,会被a:link{}、 a:visited{} 、a:hover{} 、a:active{}都继承;如果存在a:link{}中,只会被a:link{} 、a:hover{} 和a:active{}继承,a:visited{}不继承。


    2、如果没写a:link,只有其余三个,那么a:link会继 承a{}的所有属性,其余三个会保持自己的已有属性并从a{}中继承没有的属性。

    3、如果没写a:hover,只有其余三个,那么a:hover{}会继承a:link{}中的所有属性,并从a{}中继承自己没有的属性;a:link{}会保持自己已有属性并从a{} 中继承没有的属性;a:active{}会保持自己已有属性先从a:link{}中继承没有的属性,再从a{}中继承至此前还没有的属 性;a:visited{}会保持自己已有属性并直接从a{}中继承没有的属性。

    4、如果没写a:active{},只有其余三个,那么a:active{}会继承a:hover{}的所有属性,之后上溯到a:link{}中继承至此之前 自己还没有的属性,再从a{}中继承自己至此仍没有的属性;a:hover{}会保持自己已有属性先从a:link{}中继承自己没有 的属性,再从a{}中继承至此仍没有的属性;a:visited{}会直接从a{}中继承自己没有的属性。

    5、如果没写a:visited{},只有其余三个,那么a:visited{}会继承a{}的所有属性。其余三个都是保持自己已有属性先从上一级(分级看上面的须知②,其中 a:link的上级是a)中继承没有的属性,再从a{}中继承至此自己没有的属性。

     

     

    三、CSS中若没有a{……}的定义

     

    1、如果没写a:link{},a:link{}将采用默认的字体大小(无)和颜色(蓝色)
    2、如果没写a:hover{},a:hover{}将继承a:link{}的所有属性。如果有a:hover{},它将从a:link{}中继承自己没有的属性。
    3、如果没写a:active{},a:active{}将先继承a:hover{}中 的所有属性,然后从a:link{}中继承至此仍没有的属性。
    4、如果没写a:visited{},a:visited{}将采用默认的字体大小(无)和颜色(紫色)。

     

    四、总结

     

    1、在CSS中,如果对于相同元素有针对不同条件的定义,宜将最一般的条件放在最上面,并依次向下,保证最下面的是最特殊的条件。


    2、浏览器在显示元素时,才会从特殊到一般、逐级向上验证条件,才会使你的每一个CSS语句都起到效果。


    3、如果故意打乱顺序,也会造成一些特殊的效果。比如,可以为链接制造出下划线颜色与文字颜色的差异。

    4、再重复一遍正确的顺序:a:link、a:visited、a:hover、a:active .

    标签: