将两个或更多 CSS 规则应用于同一文本时,这些规则可能会发生冲突并产生意外的结果。浏览器按以下方式应用 CSS 规则:
如果将两种规则应用于同一文本,浏览器显示这两种规则的所有属性,除非特定的属性发生冲突。例如,一种规则可能指定文本颜色为蓝色,而另一种规则可能指定文本颜色为红色。
如果应用于同一文本的两种规则的属性发生冲突,则浏览器显示最里面的规则(离文本本身最近的规则)的属性。因此,如果外部样式表和内联样式同时影响文本元素,则应用内联样式。
如果有直接冲突,则自定义 CSS 规则(使用 class 属性应用的规则)中的属性将覆盖 HTML 标签样式中的属性。
在下面的示例中,为 h1 定义的样式可以指定所有 h1 段落的字体、大小和颜色,但应用于该段落的自定义 CSS 规则 .Blue 将覆盖 h1 样式中的颜色设置。另一个自定义 CSS 规则 .Red 将覆盖 .Blue,因为它位于 .Blue 样式的内部。
<h1><span class="Blue">This paragraph is controlled by the .Blue custom style and h1
HTML tag style.<span class="Red">Except this sentence is controlled by the .Red style.</span>
Now we're back to the .Blue style.</span></h1>