首页 > 代码库 > :link,:visited,:focus,:hover,:active详解

:link,:visited,:focus,:hover,:active详解

CSS 又名 层叠样式表,所谓层叠,就是后面的样式会覆盖前面的样式,所以在样式表中,各样式排列的顺序很有讲究。

:link 与 :visited 在样式文件中的顺序可以随便放置。

focus, hoveractive这几个,如果你设置的顺序不同,会直接影响样式的显示效果,下面会详细解释。

:focus -> :hover -> :active

 

有些人可能会困惑,为什么必须要按这样的顺序,而不能打乱呢? 其实他们每一个选择器都代表一个含义。

:link代表为访问链接的样式,所以只要你是超链接,且未被访问过,则链接都会按照你设定的样式显示,所以它的位置顺序无所谓。

:visited代表链接访问后的样式,则链接一旦被访问,则之后它的样式就会是你所设置的visited样式

重点是下面这几个:

:focus 代表的是获取焦点时的样式,有人说啥是获取焦点时的样式,这个我们可以通过tab键来查看,一旦链接获取了焦点,则它的样式就是你设置的focus样式。

:hover 代表的是你光标经过某一元素时的样式,如果将此样式放在:focus之后,则当链接获取焦点时,显示:focus样式,当光标经过此链接时,会显示hover的样式,因为hover排在后,会覆盖focus样式。

如果:hover排在前,:focus排在后,则当光标获得焦点时显示:focus的样式,但当光标经过链接时,样式并未显示:hover的样式,而是继续是:focus的样式,因为应用的focus样式在hover之后,覆盖了前面的样式。

测试代码如下:

a:focus{

color:#AA80FE;

text-decoration:underline;

}

a:hover{

color:#FF0000;

text-decoration:underline;

}

a:hover{

color:#FF0000;

text-decoration:underline;

}

a:focus{

color:#AA80FE;

text-decoration:underline;

}

:active 代表元素被激活时的样式,也就是元素被按下时的样式,如果:active选择器与 :focus , :hover 调换位置,则显示的效果也会不同,因为排在后面的样式,会覆盖前面的样式。

测试代码如下:

a:hover{

color:#FF0000;

text-decoration:underline;

}

a:active{

color:#FFCC00;

}

 

a:active{

color:#FFCC00;

}

a:hover{

color:#FF0000;

text-decoration:underline;

}

你可能会问,css是层叠样式表,那是不是就意味着写在后面的样式一定会覆盖前面的样式呢?

大家可以看另一篇教程:CSS中选择器优先级顺序实战讲解

欢迎大家加入互联网技术交流群:62329335

个人申明:所分享博文,绝对原创,并力争每一个知识点都通过实战演示来进行验证。