- CSS 教程
- CSS - 首页
- CSS - 路线图
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 测量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - 块级边框
- CSS - 内联边框
- CSS - 外边距
- CSS - 列表
- CSS - 内边距
- CSS - 光标
- CSS - 轮廓
- CSS - 尺寸
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉菜单
- CSS - 可见性
- CSS - 溢出
- CSS - 清除浮动
- CSS - 浮动
- CSS - 箭头
- CSS - 调整大小
- CSS - 引号
- CSS - 顺序
- CSS - 位置
- CSS - 连字符
- CSS - 悬停
- CSS - 显示
- CSS - 聚焦
- CSS - 缩放
- CSS - 转换
- CSS - 高度
- CSS - 连字符字符
- CSS - 宽度
- CSS - 不透明度
- CSS - Z-Index
- CSS - 底部
- CSS - 导航栏
- CSS - 覆盖层
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - 属性选择器
- CSS - 组合器
- CSS - 根
- CSS - 盒模型
- CSS - 计数器
- CSS - 剪辑
- CSS - 书写模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - All
- CSS - Inset
- CSS - Isolation
- CSS - Overscroll
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - 指针事件
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - Max Block Size
- CSS - Min Block Size
- CSS - Mix Blend Mode
- CSS - Max Inline Size
- CSS - Min Inline Size
- CSS - Offset
- CSS - Accent Color
- CSS - User Select
- CSS 高级
- CSS - 网格
- CSS - 网格布局
- CSS - Flexbox
- CSS - 可见性
- CSS - 定位
- CSS - 图层
- CSS - 伪类
- CSS - 伪元素
- CSS - @规则
- CSS - 文本效果
- CSS - 分页媒体
- CSS - 打印
- CSS - 布局
- CSS - 验证
- CSS - 图片精灵
- CSS - Important
- CSS - 数据类型
- CSS3 教程
- CSS3 - 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多重背景
- CSS - 颜色
- CSS - 渐变
- CSS - 盒阴影
- CSS - 盒装饰中断
- CSS - 光标颜色
- CSS - 文本阴影
- CSS - 文本
- CSS - 2d 变换
- CSS - 3d 变换
- CSS - 过渡
- CSS - 动画
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按钮
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 函数
- CSS - 数学函数
- CSS - 遮罩
- CSS - 形状
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS RWD - 简介
- CSS RWD - 视口
- CSS RWD - 网格视图
- CSS RWD - 媒体查询
- CSS RWD - 图像
- CSS RWD - 视频
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 转换器
- CSS - 颜色选择器和动画
- CSS 资源
- CSS - 有用资源
- CSS - 讨论
CSS - 变量
CSS 变量是自定义属性,允许您在整个 CSS 程序中存储和重用值。CSS 变量类似于其他编程语言中的变量。
目录
如何在 CSS 中声明变量?
CSS 变量通常使用 :root 选择器定义。以下是声明 CSS 变量的语法
:root { --variable-name: value; }
要使用 CSS 变量,请遵循以下语法
selector { var(--variable-name, fallback-value); }
我们可以使用var函数替换任何元素上 CSS 属性的值。
CSS 不允许在媒体查询或容器查询中使用变量,也不能使用它们来设置 CSS 属性或选择器的名称。
传统方法
在这个示例中,我们将看到如何在不使用变量的情况下完成颜色和样式。在这里,您可以注意到我们正在重复指定属性值。
示例
<html lang="en"> <head> <style> body { background-color: #f0f0f0; color: #333; font-family: 'Arial', sans-serif; padding: 10px; } header { background-color: #0044cc; color: #fff; padding: 10px; } .container { background-color: #fff; padding: 10px; } </style> </head> <body> <header> <h1>Welcome to My Website</h1> </header> <div class="container"> <p> This is a container with a background color defined traditionally. Here we need to specify repeating color values multiple times. </p> </div> </body> </html>
使用 CSS 变量
以下代码展示了如何使用变量来避免 CSS 中的冗余。在处理现实世界应用程序中的大型代码库时,这变得更加重要。
在这里,您还可以看到我们将颜色 '#0044cc' 定义为蓝色,因此开发人员可以通过使用变量 blue 来重复使用此颜色。
示例
<html lang="en"> <head> <style> :root { --main-bg-color: #f0f0f0; --main-text-color: #333; --primary-font: 'Arial', sans-serif; --padding: 10px; --blue: #0044cc; --header-text: #fff; --container-bg: #fff; } body { background-color: var(--main-bg-color); color: var(--main-text-color); font-family: var(--primary-font); padding: var(--padding); } header { background-color: var(--blue); color: var(--header-text); padding: var(--padding); } .container { background-color: var(--container-bg); padding: var(--padding); } </style> </head> <body> <header> <h1>Welcome to My Website</h1> </header> <div class="container"> <p> This is a container with a background color defined using variables. </p> </div> </body> </html>
根伪类
CSS 变量在样式表的顶部使用:root伪类声明,该伪类匹配文档的根元素。这意味着使用:root选择器声明的 CSS 变量可以被文档中的任何元素使用。
CSS 变量名称区分大小写,这意味着 --pink-color 和 --Pink-color 是两个不同的变量。
步骤 1:定义自定义属性
要使用 :root 伪类声明变量,只需在变量名称前添加'--'前缀,然后设置其值。
:root { --pink-color: pink; --blue-color: blue; }
步骤 2:在 CSS 中使用自定义属性
然后可以使用var()函数在整个 CSS 代码中使用这些变量。
.box { width: 400px; height: 200px; background-color: var(--pink-color); color: var(--blue-color); } .box1, .box2 { display: inline-block; background-color: var(--pink-color); width: 100px; height: 50px; color: var(--blue-color); }
示例
以下示例展示了如何在十六进制和 RGB 值中定义我们自己的颜色阴影变体,将其存储在变量中并在以后重用。
<html> <head> <style> :root { --white-color: #f0f0f0; --black-color: rgb(0, 0, 21); } .box { text-align: center; padding: 20px; background-color: var(--white-color); color: var(--black-color); } .box1, .box2 { display: inline-block; background-color: var(--black-color); color: var(--white-color); width: 100px; height: 50px; } </style> </head> <body> <div class="box"> <h2>Tutorialspoint</h2> <p> How to code a website using HTML and CSS </p> <div class="box1"> HTML </div> <div class="box2"> CSS </div> </div> </body> </html>
自定义属性的继承
您可以使用 CSS 变量定义可重用的 CSS 值,这些值可以由子元素继承。
步骤 1:在:root选择器中声明自定义属性。
这使变量全局化,并可供文档中的所有元素访问。
:root { --pink-color: pink; }
步骤 2:使用var()函数在 CSS 中访问自定义属性。
这允许您在 box 的所有子元素中重用自定义属性。
.box { --box-background: var(--pink-color); background-color: var(--box-background); }
步骤 3:在子元素中使用颜色。
这允许您为特定元素自定义自定义属性的值。
.box1, .box2 { background-color: var(--box-background); }
示例
以下示例演示了如何将 CSS 自定义属性与继承一起使用。
<html> <head> <style> :root { --white-color: #f0f0f0; --black-color: rgb(0, 0, 21); } .box { --box-background: var(--white-color); background-color: var(--box-background); text-align: center; padding: 20px; } .box1, .box2 { display: inline-block; background-color: var(--black-color); /* Box Background is defined at parent box */ color: var(--box-background); width: 100px; height: 50px; } </style> </head> <body> <div class="box"> <h2>Tutorialspoint</h2> <p> How to code a website using HTML and CSS </p> <div class="box1"> HTML </div> <div class="box2"> CSS </div> </div> </body> </html>
CSS 变量回退值
您可以将 CSS 变量与回退值一起使用,以确保您的 CSS 代码仍然有效并在变量未定义的情况下也能工作。
CSS 回退值不用于使 CSS 自定义属性在旧版浏览器中工作。它们仅在支持 CSS 自定义属性的浏览器中用作备份,以防变量未定义或具有无效值。
示例
在下面的示例中,我们只为白色定义了颜色阴影,但也在使用黑色变量。由于我们为黑色变量定义了回退值,因此不会出现任何错误。
<html> <head> <style> :root { --white-color: #f0f0f0;/* Shade for white */ /* variable for black not defined */ } .box { text-align: center; padding: 20px; background-color: var(--white-color, white); color: var(--black-color, black); } .box1, .box2 { display: inline-block; background-color: var(--black-color, black); color: var(--white-color, white); width: 100px; height: 50px; } </style> </head> <body> <div class="box"> <h2>Tutorialspoint</h2> <p> How to code a website using HTML and CSS </p> <div class="box1"> HTML </div> <div class="box2"> CSS </div> </div> </body> </html>
CSS 变量无效值
在下面的示例中,--red-color自定义属性的值定义为15px。这是一个无效的值,因为红色属性仅接受颜色值。
但是,浏览器将无法解析自定义属性的值,因为它无效。结果,它将简单地忽略 CSS 规则,第二个 h2 元素中的文本将保持相同的颜色。
示例
在这个示例中,即使我们使用 color 属性将 h2 的颜色设置为红色,但由于无效颜色引起的错误,使用了默认颜色黑色。
<html> <head> <style> :root { /* define a invalid value for c0lor */ --red-color: 15px; } h2 { /* Make color of h2 as red */ color: red; } h2 { /* Use invalid color for h2, this will cause error and default color value (black) is used */ color: var(--red-color); } </style> </head> <body> <h2> Tutorialspoint CSS Variables. </h2> </body> </html>
JavaScript 中的 CSS 变量
以下示例演示了如何使用 JavaScript 全局和本地设置 CSS 变量。
示例
<html> <head> <style> .box { text-align: center; padding: var(--padding); background-color: var(--white-color); color: var(--black-color); } .box1, .box2 { display: inline-block; background-color: var(--black-color); color: var(--white-color); width: 100px; height: 50px; } </style> </head> <body> <div class="box"> <h2>Tutorialspoint</h2> <p>How to code a website using HTML and CSS</p> <div class="box1">HTML</div> <div class="box2">CSS</div> </div> <script> const root = document.documentElement; const boxElement = document.querySelector('.box'); // Define a global variable root.style.setProperty('--padding', '20px'); // Define variables specific to the box element boxElement.style.setProperty('--white-color', '#f0f0f0'); boxElement.style.setProperty('--black-color', 'rgb(0, 0, 21)'); </script> </body> </html>