我使用CSS设计了链接的样式,如下所示。
这在Chrome中正如预期的那样工作,但是对于IE8,我遇到了这个问题:
当您第一次访问该页面时,所有链接都没有预期的下划线。
如果我悬停在上面,他们就会得到预期的下划线。
如果然后访问链接,下划线将消失,但如果我再次悬停在它们上,我就不会再得到下划线了。
有什么主意.?
谢谢
a:link {color:#0064cc;font-family:Arial;font-size:13px;text-decoration:none !important;}
a:active {color:#0064cc;font-family:Arial;font-size:13px;text-decoration:none !important;}
a:hover {color:#0064cc;font-family:Arial;font-size:13px;text-decoration:underline !important;}
a:visited {color:#0064cc;font-family:Arial;font-size:13px;text-decoration:none !important;}
发布于 2013-10-02 13:44:14
您的问题来自这样一个事实,即您的链接没有在LVHA命令中进行样式设计。为了获得一致的跨浏览器结果,您应该首先使用:link
,然后是:visited
,然后是:hover
,然后是:active
。
此外,应用于:link
的任何样式都不需要重新应用于:visited
、:hover
或:active
,除非您希望用不同的值覆盖它。例如,当您将text-decoration:none
声明为:link
时,您不需要将其放入除:hover
之外的任何其他定义中,在:hover
中,您希望将其重写为none
。由于除了:hover
之外,所有样式都是相同的,所以您可以在这里绕过LVHA命令:
a:link, a:visited, a:active {
color: #0064cc;
font-family: Arial;
font-size: 13px;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
希望这能有所帮助!
编辑
虽然您的问题与您对!important
的使用无关,但是避免使用它通常是一个好主意。它导致了一些相当非语义的CSS。最好对CSS选择器的应用顺序有一个全面的了解(这并不像您想象的那么简单!)查看MDN的文档以获得更多信息。
发布于 2013-10-02 13:44:52
试着按正确的顺序列出不同的选择器。
a:hover
必须跟在a:link
后面,a:visited
a:active
必须跟着a:hover
另外,您不应该使用!important
。这以后会给你带来麻烦。
Src:link.asp
发布于 2013-10-02 13:46:19
只需阅读一下CSS选择器的特性,并重新排序您的样式规则:
http://www.w3.org/TR/css3-selectors/#specificity
尽量避免!important
,就像魔鬼避开十字架一样。
https://stackoverflow.com/questions/19138319
复制相似问题