据我理解,CSS优先级规则表明伪类与标签选择器的权重相同。因此,像“div p a”这样的选择器比“a:link”更具体。
但是,如下测试用例所示,情况似乎并非如此。为什么链接是红色的?
但是,如下测试用例所示,情况似乎并非如此。为什么链接是红色的?
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css" media="screen">
a:link { color: red; }
div p a { color: green; }
div.foobar p a { color: green; }
</style>
</head>
<body>
<div>
<p>
<a href="http://somecrazyurlwierdthing.com">A link... why is it red?</a>
</p>
</div>
<div class="foobar">
<p>
<a href="http://somecrazyurlwierdthing.com">But it turns green when you add a class selector.</a>
</p>
</div>
</body>
</html>
我已经编辑了这个示例,包括了"div.foobar p a"选择器。
a
元素不一定是一个链接;它也可以是一个锚点,通过URL片段进行链接。这是使用:link
和相关伪类的主要原因:允许区分是链接的a
元素和不是链接的a
元素。同时,考虑使用适当的伪类(:link
、:visited
、:hover
、:focus
和:active
)来提高可用性,反映用户与页面/站点交互的状态;我个人特别不喜欢有许多链接的页面没有为:visited
定义明确的样式。 - NickFitz