CSS中的变量
前言
在 CSS 中,有很多需要反复使用的属性值,如果每个使用的地方都直接写死这个值,而没有使用变量去定义这个值的话,后期修改起来会很麻烦。有很多人忽略了在 CSS 中也可以定义变量这个事情,相信你会爱上它 !
CSS 使用变量有很多好处: 可以减少样式代码的重复性,增加样式代码的扩展性和灵活性
声明变量
- 声明变量的时候,变量名前面要加上两根连词线
--
:root { --color: #ebebeb; --size: 26px; --shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1) }
上面代码中,声明了三个变量: --color
、--size
、--shadow
变量名大小写敏感,例如: --header 和 --Header 是两个不同的变量
它们与 color, font-size 等正式属性没有什么不同,只是没有默认含义,所以 CSS 变量又叫做 CSS 自定义属性
你可能会问,为什么选择两根连词线(--)表示变量?因为 $ 被 Sass 用掉了,@ 被 Less 用掉了。为了不产生冲突,官方的 CSS 变量就改用两根连词线了。
var函数
var()
函数用于读取变量
div { font-size: var(--size); box-shadow: var(--shadow); }
var()
函数还可以使用第二个参数,表示变量的默认值。如果变量不存在,就会使用这个默认值
font-size: var(--size, 30px);
var()
函数还可以用在变量的声明
--big-size: var(--size);
- 变量值只能作为属性名,不能作为属性值。下面代码中,变量
--side
用作属性名,这是无效的。
.foo { --side: margin-top; /* 无效 */ var(--side): 20px; }
变量的作用域
同一个 CSS 变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效,这与 CSS 的层叠规则是一致的
下面代码中,三段文字的颜色是不一样的
<style> :root { --color: blue; } div { --color: green; } #alert { --color: red; } * { color: var(--color); } </style> <p>蓝色</p> <div>绿色</div> <div id="alert">红色</div>
变量的作用域就是它所在选择器的有效范围内
由于这个原因,全局的变量通常放在根元素 :root
里面,确保任何选择器都可以读取它们
:root { --color: #ff5722; --size: 25px; --shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!