【发布时间】:2012-12-13 16:23:58
【问题描述】:
我正在使用 twitter bootstrap (TB),似乎他们的 CSS 规则在不应该的情况下优先。我创建了这个小提琴来显示问题:
http://jsfiddle.net/whoiskb/Za2TB/
HTML
<div class="teaser">
<h1 class="teaserText">Text text text <label>Label</label> Text <label>Activities</label></h1>
</div>
CSS(加上 twitter 引导程序的外部链接)
div.teaser h1.teaserText {
font-size: 100px;
font-weight: 100;
color: black;
line-height: 90px;
font-family: "Trebuchet MS", "Arial Black", "Impact", "Arial";
text-transform: uppercase;
}
div.teaser h1.teaserText label {
color: #FCCE00;
}
根据我对特异性规则的了解,为 TB 中的标签定义的规则应该只得到 1 的值,因为 html 选择器的值是 1。我的类应该有 23 的值,因为我有 3 个 html 选择器和2 个类选择器,每个选择器的值应为 10。正如您在小提琴中看到的那样,尽管 TB css 定义中的标签选择器优先。
有人可以解释我在这里缺少什么吗?
顺便说一句,我知道我可以使用 !important 标签来解决这个问题,我只是想更好地理解 CSS 特定性规则。
【问题讨论】:
-
我很困惑。显然第二种风格更具体,因为它是完全相同的风格,最后多了一个“标签”?
-
首先我需要知道你在期待什么。我在小提琴中看到的是 TEXT TEXT TEXT 是黑色和 100px 大小。标签和活动是正常的字体大小和黄色。即它正在选择字体系列、文本转换和颜色。
-
“我知道我可以使用
!important标签来解决这个问题”——不是在我的代码中你不能。!important也不是标签,我认为它在这里不会有任何区别。 -
我原以为黄色的小标签也会采用相同的字体大小、高度等...... Christoph 解释了我误解规则的原因和位置。谢谢大家。
标签: css twitter-bootstrap css-specificity