首页 前端知识 CSS 变量var() 函数

CSS 变量var() 函数

2025-02-28 12:02:53 前端知识 前端哥 632 970 我要收藏

var() 是 CSS 中用于引用和使用自定义属性(也就是 CSS 变量)的一种方法。

通过定义变量,可以将样式中的常用值抽象成一个可复用的变量,从而增强代码的可维护性和可重用性。

1. 定义 CSS 变量

CSS 变量的定义通常在 :root选择器中进行,:root 是文档的根元素(通常是 <html>)。这样定义的变量可以在整个文档中使用。

:root {
  --main-color: #3498db; /* 定义一个全局变量 */
  --font-size: 16px;
}

2. 使用 CSS 变量

使用 var() 函数来引用变量:

body {
  background-color: var(--main-color);  /* 使用变量 --main-color */
  font-size: var(--font-size);  /* 使用变量 --font-size */
}

3. 作用域与局部变量

变量的作用域是有限的。变量可以在任何 CSS 规则中定义,并且其作用范围是从定义位置到文档树中的所有子元素。

/* 定义全局变量 */
:root {
  --global-color: #ff6347;
}

/* .container 内部定义局部变量 */
.container {
  --container-bg: #2ecc71;
  background-color: var(--container-bg);  /* 只对 .container 生效 */
}

body {
  background-color: var(--global-color);  /* 全局使用 */
}

4. 提供默认值

使用 var() 时,可以提供一个默认值。如果变量没有定义或无效,浏览器将使用该默认值。

p {
  color: var(--text-color, black);  /* 如果 --text-color 未定义,则使用 black */
}

5. 动态修改 CSS 变量

CSS 变量的值可以通过 JavaScript 动态修改。例如:

// 修改 CSS 变量的值
document.documentElement.style.setProperty('--main-color', '#e74c3c');

这行代码会改变全局变量 --main-color 的值,使得整个文档中引用该变量的地方都生效。

6. 示例:使用 CSS 变量实现主题切换

利用 CSS 变量来实现类似主题切换的效果。

/* 默认主题 */
:root {
  --primary-color: #3498db;
  --background-color: white;
}

/* 暗黑主题 */
[data-theme="dark"] {
  --primary-color: #2ecc71;
  --background-color: #333;
}

body {
  background-color: var(--background-color);
  color: var(--primary-color);
}

通过 JavaScript 来切换主题:

// 切换到暗黑主题
document.documentElement.setAttribute('data-theme', 'dark');

// 切换回默认主题
document.documentElement.removeAttribute('data-theme');

7. 总结

  • 定义变量--variable-name: value;

  • 使用变量var(--variable-name);

  • 作用域:CSS 变量的作用域依赖于它们的定义位置。

  • 默认值var(--variable-name, default-value);

  • 动态更新:可以通过 JavaScript 动态修改变量值。

CSS 变量的优点在于提升了代码的灵活性和可维护性,尤其是在需要全局控制或多次使用相同值的场景下。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/21844.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!