You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

请问以双连字符开头的这些CSS属性具体是什么?

CSS自定义属性(CSS变量)详解

嘿,你发现的这些以--开头的属性是CSS自定义属性,也常被大家叫做CSS变量,是CSS3标准里加入的核心功能之一,专门用来解决样式复用和统一管理的痛点。

为什么用:root定义?

你看到的代码是在:root选择器里声明这些变量的,:root是一个伪类选择器,它匹配的是文档的根元素(在HTML里就是<html>标签),在这里定义的自定义属性是全局作用域的,整个页面的所有元素都能访问和使用这些变量。

怎么使用这些变量?

定义好变量之后,你可以用var()函数来引用它们,比如如果要使用那个基础字体家族,写法就是:

body {
  font-family: var(--font-family);
  font-weight: var(--font-weight);
}

如果担心变量未定义导致样式失效,还可以给var()函数加一个 fallback 备选值:

h1 {
  font-size: var(--font-size-xxx-display, 6rem);
}

这些变量能做什么?

从你贴的代码片段来看,Andy Clarke用它来统一管理全站的字体系统:

  • 把不同字重的字体家族单独定义成变量,方便在不同场景切换(比如标题用粗体字体变量,正文用常规的)
  • 把不同层级的字体大小做成变量,尤其是像--font-size-xxx-display: 8vmin这种用相对单位的变量,能轻松实现响应式的字体效果,不用写一堆媒体查询来逐个调整字体大小

这种方式最大的好处就是维护成本极低——如果哪天要换全站的基础字体,只需要修改:root里的--font-family变量值就行,不用在CSS文件里到处找对应的font-family属性去替换,效率超高。


内容的提问来源于stack exchange,提问作者Ky -

火山引擎 最新活动