css同一个颜色要多处使用怎么办_使用css变量保存颜色值

使用 CSS 变量在 :root 中定义颜色并复用,支持回退值、媒体查询重定义和 JS 动态修改,是简洁、可维护且无需编译的最佳实践。

直接用 CSS 变量(Custom Properties)定义颜色,然后在各处复用,是最简洁、可维护性最强的方式。

定义 CSS 变量

:root 伪类中声明变量,确保全局可访问:

:root {
  --primary-color: #4a90e2;
  --error-color: #e74c3c;
  --text-light: #f8f9fa;
}

在样式中使用变量

var(--变量名) 引入,支持回退值(当变量未定义时的备用颜色):

  • 按钮背景background-color: var(--primary-color);
  • 文字颜色color: var(--text-light, #333);
  • 边框border-color: var(--error-color, red);

按需覆盖或局部重定义

变量可被子元素或媒体查询重新赋值,实现主题切换或响应式适配:

  • 深色模式下重设:@media (prefers-color-scheme: dark) { :root { --text-light: #212529; } }
  • 某个组件内临时改色:.card { --primary-color: #2c3e50; }

配合预处理器更灵活?其实没必要

CSS 变量原生支持动态修改(JS 可读写)、级联作用域、无需编译,比 Sass/Less 的 $color 更适合现代项目。除非需要复杂函数运算,否则纯 CSS 变量完全够用。