CSS优先级+继承

114 阅读1分钟

(注意:内容不全、但应该无错)

1、优先级

优先级指的是相同样式字段重复时,具体是哪个样式值生效的判定。注意两个核心点

  • !important的优先级最高
  • 作用域范围越小、优先级越高

外部样式文件 < 当前文件body < class < id < 行内style < important。

如果有多个class,则在行外<style>标签中声明靠后的优先级高; 如果就一个important那么他说了算。 如果这5个位置的important个数>1,那么此时是把有important的位置找出来,还是按照 默认顺序来看。如下代码可以自行调试

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS优先级学习</title>
<style>
<style>
  body {
    background-color: black;
    color: green;
  }
  .blue-text{
    color:blue !important;
  }
  .pink-text{
    color:pink;
  }
  #orange-text{
    color:orange;
  }
</style>
</head>

<body>
<h1 class="blue-text pink-text"
    id="orange-text"
    style="color:red;"
>Hello World!</h1>
</body>
</html>

2、样式继承

官方文档 developer.mozilla.org/zh-CN/docs/…

在 css 中,当你没有为元素的样式属性指定值时(如果指定了那么自然以指定的为准,就不用考虑继承了)
每个样式属性有明确的是默认继承的 ("Inherited: Yes") 还是默认不继承的("Inherited: no")规定。

2.1 继承属性

如果该样式属性是继承的,那么就取父元素的同属性的计算值。因为文档根元素是有默认值的,所以该属性一定能够拿到值。比如 color 此时AA是绿色。

p { color: green; } 
<p>This paragraph has <em>AA</em> in it.</p>

2.2 非继承属性

如果该样式属性是非继承的,那么就取根元素默认值。比如 border 此时AA是无边框的。

p { border: medium solid; }
<p>This paragraph has <em>AA</em> in it.</p>

注意 inherit 关键字允许显式的声明继承性,它对继承和非继承属性都生效。

待补充学习