css生效规则

css生效规则

优先级

浏览器根据优先级决定不同选择器生效。

作用范围越精准,优先级越高

计算优先级规则

  • ID:选择器中包含 ID 选择器则百位得一分。
  • 类:选择器中包含类选择器、属性选择器或者伪类则十位得一分。
  • 元素:选择器中包含元素、伪元素选择器则个位得一分。

内联样式

内联样式,即 style 属性内的样式声明,优先于所有普通的样式,无论其优先级如何。这样的声明没有选择器,但它们的优先级可以理解为 1-0-0-0;即无论选择器中有多少个 ID,它总是比其他任何优先级的权重都要高

!important

特殊的 CSS 可以用来覆盖所有上面所有优先级计算,不过需要很小心的使用------!important。用于修改特定属性的值,能够覆盖普通规则的层叠。

继承

父元素在css上的属性部分可以被子元素继承(width,margin,padding,border等不会继承)

尽管每个 CSS 属性页都列出了属性是否被继承,但我们通常可以通过常识来判断哪些属性属于默认继承。

继承属性

CSS 为控制继承提供了五个特殊的通用属性值。每个 CSS 属性都接收这些值

  • inherit
    • 设置该属性会使子元素属性和父元素相同。实际上,就是"开启继承"。
  • initial
    • 将应用于选定元素的属性值设置为该属性的初始值。
  • revert
    • 将应用于选定元素的属性值重置为浏览器的默认样式,而不是应用于该属性的默认值。在许多情况下,此值的作用类似于 unset。
  • revert-layer
    • 将应用于选定元素的属性值重置为在上一个层叠层中建立的值。
  • unset
    • 将属性重置为自然值,也就是如果属性是自然继承那么就是 inherit,否则和 initial 一样

CSS 的简写属性 all 可以用于同时将这些继承值中的一个应用于(几乎)所有属性。它的值可以是其中任意一个(inherit、initial、unset 或 revert)。这是一种撤销对样式所做更改的简便方法,以便回到之前已知的起点。

层叠

同级别的规则应用到同一个元素,此时写在后方的是实际使用的规则

有三个因素需要考虑,根据重要性排序如下,后面的更重要:

  • 资源顺序
  • 优先级
  • 重要程度
相关推荐
人间凡尔赛5 小时前
2026 前端必修:4 个让 CSS 脱胎换骨的现代新特性(附实战代码)
前端·css
Asize1 天前
2 道大厂面试题:TS 工具类型我懂了,CSS 3 列布局把我问住了
前端·css·typescript
用户059540174462 天前
把 AI 长期记忆去重测试从 20 分钟压到 40 秒,重复率从 18% 干到 1.5%
前端·css
码艺-Alimjan2 天前
横向滚动组件纯用 CSS,丝滑鼠标滚动不许js
javascript·css·计算机外设
砚凝霜2 天前
软考网络工程师|案例分析:Eth‑Trunk 链路聚合、iStack 堆叠、CSS 集群核心考点总结
前端·css·网络
breeze jiang3 天前
CSS 三栏布局怎么写:Flex、Grid 完整方案与 BFC 区别
前端·css
何时梦醒3 天前
CSS 三栏布局与 BFC 深度解析:Float、Flex、Grid 三种方案一网打尽
前端·css·面试
烬羽3 天前
CSS 三栏布局:`margin-left: -100%` 凭什么把侧栏「拽」回上一行?彻底搞懂负 margin
css·面试·前端框架
BreezeJiang3 天前
写了 display:flex,为什么三栏布局还没完成?
前端·css
用户938515635074 天前
TypeScript 高级类型 + CSS 三列布局:从类型体操到样式工程的进阶之路
css·面试·typescript