首页 > 代码库 > :link,:visited,:focus,:hover,:active详解
:link,:visited,:focus,:hover,:active详解
CSS 又名 层叠样式表,所谓层叠,就是后面的样式会覆盖前面的样式,所以在样式表中,各样式排列的顺序很有讲究。
:link 与 :visited 在样式文件中的顺序可以随便放置。
而focus, hover,active这几个,如果你设置的顺序不同,会直接影响样式的显示效果,下面会详细解释。
: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
个人申明:所分享博文,绝对原创,并力争每一个知识点都通过实战演示来进行验证。