跳转到正文

CSS 算法 ​

CSS 不执行通用算法;浏览器对每个元素执行选择器匹配、级联、继承、值计算和布局。理解这些步骤比背诵单个优先级数字更可靠。

样式与布局阶段 ​

阶段关键输入结果
选择器匹配DOM、伪类状态、选择器候选声明
级联来源、重要性、层、优先级、顺序胜出声明
继承与值计算父元素、变量、单位计算值
Grid 轨道计算可用空间、固定与弹性轨道最终轨道尺寸

CSS 的独特之处 ​

:where() 的优先级恒为零,适合提供易覆盖的默认规则。级联层顺序位于选择器优先级之前,因此后置层中的低优先级规则也可以覆盖前层规则。

综合示例 ​

css
@layer base, theme, overrides;

@layer base {
  .card { color: #334155; background: #f1f5f9; }
}

@layer theme {
  :where(.card) { color: #3730a3; }
  .grid { display: grid; grid-template-columns: 1fr 2fr; gap: 1rem; }
}

@layer overrides {
  .card[data-priority="high"] { color: #991b1b; border-color: currentColor; }
}

.card {
  padding: 1rem;
  border: 2px solid #94a3b8;
  border-radius: 0.5rem;
}
CSS

Tab 缩进 · Shift+Tab 反向缩进 · Esc 后按 Tab 离开编辑器
修改后切换到“效果”刷新预览 · Ctrl/⌘ + Enter

Released under the MIT License.