CSS5中的级联层@layer

css level的小常识

其实文章标题中有个错误------严格来说并没有css5这个标准。

在 W3C 的标准里,CSS 是按 模块 (Module) 来发布的,每个模块有不同的发展阶段。

  • 早期(CSS1、CSS2)的时候,规范是一个整体。
  • 后来 W3C 把 CSS 拆成多个模块(选择器、背景与边框、颜色、排版、动画......)。
  • 每个模块会不断迭代,因此有了 Level 1、Level 2、Level 3、Level 4 这样的称呼。
scss 复制代码
CSS1 (1996)
   │
   ▼
CSS2 (1998)
   │
   ├── CSS 2.1 (2004 → 2011 定稿)
   │
   ▼
CSS3 (2001 开始 → 模块化)
   ├── Selectors Level 3 (nth-child, not 等)
   ├── Backgrounds & Borders Level 3 (border-radius, box-shadow)
   ├── Color Level 3 (rgba, hsla)
   ├── Fonts Level 3 (@font-face, font-feature-settings)
   ├── Transitions & Animations Level 3
   └── Media Queries Level 3
        │
        ▼
CSS4 → 已弃用整体称呼 ❌
   │   (不再叫 "CSS4",而是各个模块单独升级)
   │
   ├── Selectors Level 4 (is, where, has 等)
   ├── Color Level 4 (lab, lch, HWB 等)
   ├── Media Queries Level 4 (交互能力、范围语法)
   └──  Cascade Level 4 (重要性层叠改进)

@layer

CSS 级联层@layer)是 CSS Cascade Level 5 引入的新特性,用来创建"层次化的样式组",让开发者更清晰地控制 不同来源的样式优先级

tailwind4中就大量使用了该特性:

基本语法和规则

相关的标准可以查阅官方文档:www.w3.org/TR/css-casc...

less 复制代码
  /* 定义层顺序:base < components < utilities */
  @layer base, components, utilities;

  /* 层 base(优先级最低) */
  @layer base {
    #box {
      color: red;
    }
  }

  /* 层 components */
  @layer components {
    .container {
      color: green;
    }
  }

  /* 层 utilities(优先级最高) */
  @layer utilities {
    div {
      color: blue;
    }
  }
  • 层内规则 :在同一层里,依旧遵循传统的 选择器优先级和书写顺序

  • 层级顺序 :写在 @layer 声明中的层,越后面的层 优先级越高。这里utilities的优先级最高,因此文字为蓝色。

  • important比较 : 越前面的层优先级越高

  • 和normal比较 : normal样式优先级高于层内样式,但如果都声明了important,则层内样式高于normal。

但是在加了important声明后,devtool上的显示有bug,不过最终计算的值没有问题。

相关推荐
华玥作者13 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
Mr Xu_13 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠13 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
lang2015092813 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
好家伙VCC14 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
未来之窗软件服务15 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
嘿起屁儿整15 小时前
面试点(网络层面)
前端·网络
VT.馒头15 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
phltxy16 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070717 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js