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}