套用多重类别
你可以在 HTML 元素的 class 属性里以空格符分隔填上多个样式类别名称,便能同时套用多重类别。
<style type="text/css">
.firstclass { background: black; color: white; }
.secondclass { font-weight: bold; }
</style>
<div class="firstclass secondclass">
... content ...
... content ...
... content ...
</div>
若是这些规则中设定了同一种特性值,则会依序以明确性(specificity)、定义位置先后决定显示方式,与class 属性中的次序无关。
无用样式
即使样式规则已经正确设定完毕,还是可能为浏览器所忽略,此时通常是经过语法及优先权法则判断后的正常现象。
以下是导致样式被略过的常见情形:
* HTML 元素层次问题
* 样式规则重新定义
* 特性的简写法
* 使用 * 选取符
* CSS 明确性
你可以使用 DOM Inspector (http://developer.mozilla.org/en/docs/DOM_Inspector) 的 CSS Style Rules 来检查上述问题。
HTML 元素层次问题
此时 CSS 样式套用与否与元素的层次大有相关,请留意:套用到子元素的样式必定会盖过母元素的样式,跟明确性或 CSS 规则的优先权无关。
#section { font-weight: bold; }
.redtext { font-weight: normal; color: red; }
<div id="section">
粗体、
<span class="redtext">正常红字、</span>
又见粗体
</div>
如果你的 HTML 层级错综复杂,发生规则意外被忽略的情形时,请检查元素层级问题。可能有某个子元素套上了不该用的样式。
样式规则重新定义
在 CSS 样式表中,先后次序非常重要。如果你定义了某规则后又重新定义一次,则晚定义的才算数。
#section { font-weight: bold; }
.redtext { color: red; }
/* 其它规则 */
/* 其它规则 */
/* 其它规则 */
.redtext { color: green; }
<div id="section">
粗体、
<span class="redtext">正常红字?</span>
又见粗体
</div>
为避免此类错误发生,每个特定选取符请仅定义一次样式,集中特性一次定义也便于管理些。
