0Pricing
CSS Academy · 课时

声明和使用自定义属性

使用 -- 前缀定义 CSS 自定义属性,并通过 var() 函数使用它们。

声明和使用自定义属性 是 CoddyKit 上的免费 CSS Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CSS Academy 课程共包含 4 节课。

CSS 自定义属性是什么

CSS 自定义属性(也称为 CSS 变量)可以让您定义一次可复用的值,并在整个样式表中使用它。它们遵循 --name: value 语法。

声明自定义属性

可以在任意元素上声明自定义属性。在 :root 上声明后,这些属性将在全局范围内可用:

<div class="demo">Custom properties declared on :root</div>

使用 var() 函数

使用 var() 函数引用自定义属性:

<button>Styled Button</button>

自定义属性会继承

自定义属性遵循 CSS 的常规继承规则。除非被覆盖,否则在父元素上定义的属性对其所有后代元素都可用。

<div class="card">
  <div class="card__body">Inherits --card-bg from .card</div>
</div>

无效的自定义属性值

与常规 CSS 属性不同,无效的自定义属性值不会导致声明被忽略——该变量只会原样解析为自身的值。之后由使用该值的属性判断它是否有效。

自定义属性与 Sass 变量

主要区别:

  • CSS 自定义属性在浏览器中动态生效,可以动态更新
  • Sass 变量会在构建时被编译消除
  • 可以使用 JavaScript 更改自定义属性
  • 自定义属性遵循层叠和继承规则

命名约定

请根据语义而不是视觉值为自定义属性命名。这样可以方便日后更新:

<p class="demo">Named --color-primary, --color-text, --size-spacing-sm</p>

全局作用域与组件作用域

在 :root 中定义全局令牌,并在组件的根类上定义组件专用的值:

<div class="card">Global font-size-base + component-scoped card vars</div>

calc() 中的自定义属性

自定义属性可以在 calc() 中使用——如果用于尺寸计算,则必须包含单位:

<div class="nav">Navbar (var(--nav-height))</div>
<div class="main-content">Main content fills the rest via calc()</div>

响应式自定义属性

在媒体查询中更改自定义属性的值,以实现响应式令牌系统:

<div class="section">Padding grows to 6rem on wide screens</div>

用于动画的自定义属性

通过更改自定义属性(通常通过 JavaScript)为元素添加动画,而不是分别更改多个属性:

<div class="progress-track">
  <div class="progress"></div>
</div>

快速检查

如何声明名为 --accent 的全局 CSS 自定义属性?

回顾

使用 --name: value 声明 CSS 自定义属性,并使用 var(--name) 使用它们。在 :root 上声明全局令牌;将组件值限制在组件选择器的作用域内。它们会动态生效、遵循层叠规则,并且可以通过 JavaScript 更改,因此比 Sass 变量强大得多。

常见问题解答

「声明和使用自定义属性」课时是免费的吗?

是的 — 「声明和使用自定义属性」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 CSS Academy 课程共包含 4 节课。

「声明和使用自定义属性」这节课中我会学到什么?

使用 -- 前缀定义 CSS 自定义属性,并通过 var() 函数使用它们。 你通过在浏览器中直接运行的动手代码来练习 CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 CSS Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「声明和使用自定义属性」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 CSS Academy 课中编写并运行代码吗?

能。每节 CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 声明和使用自定义属性
  2. 备用值与 var()
  3. 将变量限定到组件作用域
  4. 使用 JavaScript 更新变量
← 返回 CSS Academy