我用这个简单的方法来打破我的脑袋?问题。我知道这不是一个bug,也不是跨浏览器的问题,在firefox和internet explorer上测试过。只是我不明白为什么要这样解决。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
.red_class { color: red; }
.blue_class {color: blue;}
</style>
</head>
<body>
<div class="red_class">
<a class="blue_class" href="http://somesite.com">Somesite</a>
</div>
</body>
</html>
在我看来,这两个规则都有相同的特殊性,所以我希望链接显示为蓝色,因为蓝色的类规则更接近,但链接显示为红色。实际上,我更改了顺序,以便首先编写“.blue_class”规则,但它并没有更改结果
我已经找到了一些使代码工作的方法,比如使第二条规则更加具体,例如:
.red_class a.blue_class {color: blue;}
但我真的很想理解为什么这不是我所期望的那样工作,也就是说,如果链接有一个类blue_类,它应该以蓝色显示。
非常感谢你的帮助。提前谢谢。
最佳答案
实际上我不明白你怎么会得到一个红色的链接。。。
已定义href
的锚定元素不继承像color
或text-decoration
这样的属性,因此得到的结果有点奇怪。
http://www.w3.org/TR/html401/struct/links.html#h-12.2
用户代理通常以这样一种方式呈现链接,以使它们对用户显而易见(下划线、反向视频等)。准确的呈现取决于用户代理。根据用户是否已经访问了链接,呈现可能会有所不同。
因此,这将产生一个默认样式的锚定:
.red_class{color:red;}
<div class="red_class">
<a href="#">Something</a>
</div>
在这种情况下,锚点继承红色:
.red_class{color:red;}
<div class="red_class">
<a>Something</a>
</div>
我真的不明白这个问题,但至少这是一个锚样式如何工作的解释。
关于html - 嵌套类的CSS选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13783161/