Z
ZHANK
现代布局

CSS 变量

--变量名 定义、var() 使用、:root 全局变量、JS 操作

CSS 变量

CSS 变量(自定义属性) 让样式值可复用、可动态修改——比预处理器变量更强大。

学完本章你将: 掌握 --变量名/var()、:root 全局变量、JS 操作。


定义与使用

css
/* 定义——通常在 :root(全局) */
:root {
  --primary: #4CAF50;
  --spacing: 16px;
  --radius: 8px;
}

/* 使用——var() */
.btn {
  background: var(--primary);
  padding: var(--spacing);
  border-radius: var(--radius);
}

默认值与回退

css
/* 变量不存在时用默认值 */
.box {
  color: var(--text-color, #333);      /* --text-color 不存在 → #333 */
  padding: var(--gap, 10px 20px);      /* 默认值也可以是复杂值 */
}

局部变量

css
.card {
  --card-bg: #fff;          /* 只在 .card 内有效 */
  background: var(--card-bg);
}
.card.dark {
  --card-bg: #333;          /* 覆盖 */
}

JS 操作变量

javascript
// 修改变量
document.documentElement.style.setProperty('--primary', '#FF6B6B');

// 读取变量
getComputedStyle(document.documentElement).getPropertyValue('--primary');

实用场景

css
:root {
  --primary: #4CAF50;
  --text: #333;
  --bg: #fff;
}

/* 暗色模式 */
[data-theme="dark"] {
  --primary: #81C784;
  --text: #eee;
  --bg: #222;
}

body { color: var(--text); background: var(--bg); }