更新:此问题与全局样式有关。因此,诸如#some-id .score
之类的解决方案不是解决方案。
起初,我的造型为
.score { font-size: 32px; color: #777 }
“得分”可以发生在任何地方,一种全球风格的东西。但由于其他风格实际上可能有:
#summary-panel { font-size: 13px }
id
的那个将覆盖只有一个类的人(这篇文章中的第一个CSS规则)。 (因此,如果分数显示在summary-panel
内,则font-size
将被覆盖为13px
,但score
样式应该是全局的,需要32px
风格。)所以我很想使用
.score { font-size: 32px !important; color: #777 !important }
因为!important
可以作为“第二级”覆盖一切普通的,并充当全局风格。
这是一种好方法还是更好的方式?一个问题是,如果有时我们可能会遇到IE 7(或IE 6)的CSS问题,我们需要一个单独的样式表,例如ie.css
,并且在那里,可能还有
#summary-panel { font-size: 12px !important }
所以在这种情况下,!important
将被覆盖,因为拥有id
的人将总是胜过类。那么有更好的方法吗?
答案 0 :(得分:1)
也许这个?
#summary-panel.score { font-size: 32px; }
我想我不确定你要添加多少样式,或者如果问题是如何在不添加任何新样式的情况下执行此操作,在这种情况下我会说没有更好的方法。
答案 1 :(得分:1)
这是您使用span
。
例如标记:
<div id="sometext">
<p>Lorem ipsum <span class="score">test</span> dolor sit amet</p>
</div>
CSS:
div#sometext {
font-size: 12px;
color: yellow;
}
span.score {
font-size: 42px;
color: green;
}
答案 2 :(得分:-1)
这个问题是关于全球风格的。 所以解决方案如#some-id .score 不是解决方案
[...]
.score 不是解决方案那么有更好的方法吗?
没有答案,你在第一个答案中得到的所有评论都是有效和有礼貌的,但我会告诉你作为用户,你不应该使用!important
,除非在紧急情况下覆盖外部代码是你的控制,!important
是用户风格
CSS 是一种思维方式,建议,您的请求(有请;),浏览器如何显示您的样式 - 在您似乎在心态之间挣扎的那一刻
逻辑程序员方需要“全局”风格,我相信大多数编程语言都有“全局”? CSS不是一种编程语言,它是一种标记语言。
无论如何,最近3到4年来,CSS'ers被鼓励“分类一切”YUI和Blueprint以及其他框架会让我们这样做..但这意味着你不应该使用ID,因为你正确地指出他们覆盖..他们是CSS Specificity Wars中的终极..但作为一个有效的CSS编码器你需要使用ID - 这是最好的做法不是吗? - 所以,如果你确实需要混合它们,那么你应该对你的ID选择器进行分组,并在必要时按照建议的方式对类选择器进行分组
这里确实没有答案(除非你通过ID和继承传递它,除非没有全局样式这样的东西,这是一个编码偏好而不是正确/错误的答案