CSS 设置链接样式为什么会有先后顺序

html-css013

CSS 设置链接样式为什么会有先后顺序,第1张

其实楼主实践下就知道为什么了,我就解释后面那个吧,其余的楼主自己实践。

a:active 必须位于 a:hover 之后

a:active是触发的时候的样式,比如鼠标按下那个按钮

a:hover是鼠标移过的时候的样式

按下的时候,鼠标也是在hover状态吧,所以a:active在a:hover之前会认为是一直hover active状态就出不来了,样式表会先获取a:active样式 但是后面有hover 然后发现hover状态,就被覆盖了,不知道楼主懂没。。。

首先:a:link 和a:visited 并非全是常规状态, a:hover 和a:active 也并非全是鼠标经过时的状态a:link:超链接未被点击时a:hover :鼠标移上超链接时a:active:超链接被点击时a:visited :超链接被点击后直接写a可能就等同于你说的常规状态,它是包含指所有的a标签,包括链接与锚点(希望你知道什么是锚点),而a:link指的是a标签里面含有href属性的a标签,他这么写常规状态下没错,但是遇到他的页面有锚点的话,他可能就会为调试页面大费脑筋了。

由于超链接有四种不同的状态,CSS用伪类来标识它们。

(1) :link:设置a对象在未被访问前的样式表属性。

(2) :visited:设置a对象在其链接地址已被访问过时的样式表属性。

(3) :hover:设置对象在其鼠标悬停时的样式表属性。

(4) :active:设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式表属性。

定义超链接的样式:

定义超链接样式的一般格式是:

选择符:伪类名 { 样式表 }

css中关于超链接的四个属性正确顺序为:

a:link {}

a:visited {}

a:hover {}

a:active {}

伪类名字对大小写不敏感,但在定义顺序上有要求。:hover必须被置于:link和:visited之后才是有效的,:active必须被置于:hover之后才是有效的。

如果没有指定伪类,则默认为 :link。

超链接默认情况下是始总有下滑线的,如果要去掉下划线,则需要添加样式text-decoration: none

例子:

a:link { color:#dd3409text-decoration:nonefont-size:13px}/**//* 超链接的样式 */

a:visited { color:#9f301dtext-decoration:none}

a:visited:hover { color:#9f301dtext-decoration:underline}

a:hover { color:#dd3409text-decoration:underline}

a:active { color:#ff3300text-decoration:underline}