02.CSS变量 (Variables)

CSS变量让你能够创建动态的颜色方案和主题,可以在运行时进行更改。

本章概述

CSS变量(也称为CSS自定义属性)是现代CSS中最强大的特性之一。它们允许你定义可重用的值,创建动态主题系统,并大大提高CSS代码的可维护性。

🎯 学习目标

  • 理解CSS变量的基本概念和语法

  • 掌握变量的定义、使用和作用域

  • 学会创建动态主题系统

  • 了解CSS变量的高级应用技巧

  • 掌握浏览器兼容性和最佳实践

CSS变量基础

基本语法

CSS变量使用--前缀定义,通过var()函数使用:

go 复制代码
:root {
  --button-padding: 10px 20px;
  --button-bg-color: #007bff;
  --button-text-color: #ffffff;
  --button-border-radius: 8px;
}

.button {
  padding: var(--button-padding);
  background-color: var(--button-bg-color);
  color: var(--button-text-color);
  border-radius: var(--button-border-radius);
  border: none;
  cursor: pointer;
  transition: background-color 0.3s;
}

变量作用域

CSS变量遵循层叠规则,具有作用域概念:

go 复制代码
/* 全局变量 */
:root {
  --primary-color: #007bff;
  --secondary-color: #6c757d;
}

/* 组件级变量 */
.card {
  --card-padding: 1.5rem;
  --card-border-radius: 0.375rem;
  
  padding: var(--card-padding);
  border-radius: var(--card-border-radius);
  background: white;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* 状态变量 */
.card:hover {
  --card-shadow-opacity: 0.2;
  box-shadow: 0 4px 20px rgba(0, 0, 0, var(--card-shadow-opacity));
}

动态主题系统

明暗主题切换

go 复制代码
:root {
  /* 浅色主题(默认) */
  --bg-primary: #ffffff;
  --bg-secondary: #f8f9fa;
  --text-primary: #212529;
相关推荐
IT_陈寒34 分钟前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
Blanche15001 小时前
利用 RAG 为答疑机器人扩展知识范围
前端
天若有情6731 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具
SoonITer1 小时前
怎样构建一个 Agent-friendly 的网站
前端·agent
颜进强1 小时前
01 · NestJS 是什么:用途、解决什么问题、与热门框架对比
前端·后端·ai编程
wendZzoo1 小时前
前端工程师的 3D 第一课:一个模型如何进入网页
前端
颜进强1 小时前
04 · NestJS 依赖注入:你在 `@Module` 写的 providers,和构造参数里那个类型,是怎么"对上"的?
前端·后端·ai编程
肆仲冬2 小时前
不用框架,用 TypeScript 从零搭一个 Agent 框架
前端
林语琛2 小时前
我写的 switch…break 被 Babel 偷偷吞了
前端·javascript·babel
烈风逍遥2 小时前
第六篇:RAG 知识库构建与检索全链路
前端·人工智能·后端