深入理解 CSS(Cascading Style Sheets)中的层叠(Cascading)
标题中的 Cascading 亦可以理解为级联。 进入正文,这是一个很有意思的现象。可以直接跳到 总结一下 部分,看完再回过头来阅读本文。 引子 假设我们有如下结构: <p class="txt" style="color:red">123456789</p> 上面的 p 标签只有一个内联 CSS,很明显,在没有其他样式的干预下,文本 .txt 的颜色肯定就是红色的。 如果此时,我们希望改变 .txt p 标签元素的内容文字的颜色,但是不能去修改内联 CSS,只能通过样式文件去实现,像是这样: .txt { color: green; } 嗯。稍微对 CSS 有点了解的同学都会知道,上面的 CSS 文件设置的样式不会生效,因为内联样式比上述 CSS 中的样式优先级要更高。 上述这种说法不是很严谨,下文会细说。 OK,有同学就会说了,这简单,在 CSS 样式文件中添加 !important 后缀即可 。像是这样: .txt { color: green!important; } 如此操作之后,文本的颜色确实变成了绿色,因为在 CSS 文件中带 !important 后缀的规则优先级大于内联样式中同个但不带 !important 的样式。 内联样式的 !important 与样式表中的 !important 问题来了。 如果在内联样式中,我们也给加上 !important 会怎么样呢?