层叠样式
我们把 HTML 的样式化系统称为 CSS,即层叠样式表(Cascading Style Sheets)。样式表是一系列规则,指出如何为文档中元素添加样式。可以在<style>标签中写入 CSS。
<style>strong {font-style: italic;color: gray;}</style><p>Now <strong>strong text</strong> is italic and gray.</p>
所谓层叠指的是将多条规则组合起来产生元素的最终样式。在示例中,<strong>标签的默认样式font-weight:bold,会被<style>标签中的规则覆盖,并为<strong>标签样式添加font-style和color属性。
当多条规则重复定义同一属性时,最近的规则会拥有最高的优先级。因此如果<style>标签中的规则包含font-weight:normal,违背了默认的font-weight规则,那么文本将会显示为普通样式,而非粗体。属性style中的样式会直接作用于节点,而且往往拥有最高优先级。
我们可以在 CSS 规则中使用标签名来定位标签。规则.abc指的是所有class属性中包含abc的元素。规则#xyz作用于id属性为xyz(应当在文档中唯一存在)的元素。
.subtle {color: gray;font-size: 80%;}#header {background: blue;color: white;}/* p elements with id main and with classes a and b */p#main.a.b {margin-bottom: 20px;}
优先级规则偏向于最近定义的规则,仅在规则特殊性相同时适用。规则的特殊性用于衡量该规则描述匹配元素时的准确性。特殊性取决于规则中的元素数量和类型(tag、class或id)。例如,目标规则p.a比目标规则p或.a更具体,因此有更高优先级。
p>a这种写法将样式作用于<p>标签的直系子节点。类似的,p a应用于所有的<p>标签中的<a>标签,无论是否是直系子节点。
