- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- 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 - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS - 变量
CSS 变量是自定义属性,允许您在整个 CSS 程序中存储和重用值。CSS 变量类似于其他编程语言中的变量。
如何在CSS中声明变量?
CSS 变量通常使用 :root 选择器定义。以下是声明 CSS 变量的语法:
:root {
--variable-name: value;
}
要使用 CSS 变量,请遵循以下语法:
selector {
var(--variable-name, fallback-value);
}
我们可以使用 var 函数来替换任何元素上的 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”定义为蓝色,因此开发人员可以通过使用变量蓝色来重复使用这种颜色。
例
<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 变量可以被文档中的任何元素使用。
步骤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>