css-层叠与继承

88 阅读2分钟

一、继承

控制继承

  • inherit 子元素属性与父元素属性保持一致,开启继承
  • initial 属性值为属性初始值
  • revert 属性值为浏览器的默认值
  • unset 属性值为自然值,如果属性是自然继承inherit,否则为initial

all 可以将继承值引用到所有属性

二、层叠

样式表层叠:css规则顺序

三个考虑因素:

  • 资源顺序:在规则相同权重相同的情况下,后面的规则会覆盖前面的规则
  • 优先级:优先级高的规则,规则会被优先应用

优先级的计算 优先级由三个不同的值相加“百位(ID)十位(类)个位(元素)”

ID:id选择器,得一分 类:类选择器、属性选择器、伪类选择器,得一分 元素:元素、伪元素,得一分 通用符选择器、组合符和调整优先级的选择器不会影响优先级

h1  0-0-1
h1+p::first-letter 0-0-3
li>a[href="en-US"]>.inline-warning 0-2-2
  • 重要程度

Inkedweb.jpg

三、内联样式

style标签属性上设置样式,它比任何优先级的权重要高

四、!important

一个特殊的css,能够覆盖普通的层叠

五、css位置的影响

css声明的优先级取决于定义它的样式表和级联层

覆盖声明的顺序,后一种覆盖前一种:

  1. 用户代理样式表中的声明:浏览器的默认样式
  2. 用户样式表中的常规声明:用户注入的浏览器自定义样式
  3. 作者样式表中的常规声明:程序员编写样式
  4. 作者样式表中的!important声明
  5. 用户样式表中的!important声明
  6. 用户代理样式表的!important声明

级联层的顺序

在级联层中声明css,优先级的顺序由声明层的顺序决定,在声明层外声明,形成一个未命名的层,当做最后声明的层

没有!important的样式,后面的层比前面定义的层优先级高

带有!important的样式,前面的层比后面定义的层优先级高

内联样式比作者定义的样式高,不受级联影响