- 说明
-
. 使用全局变量或内联变量
. 变量以双 -- 号开始,如 --main-color
. 通常配合 calc() 函数一起运算
var(custom-property-name[, value])
. custom-property-name:必需。自定义属性的名称,必需以 -- 开头
. value:可选。备用值,在属性不存在的时候使用
- 使用全局CSS变量
- . 如果变量定义在根选择器 :root,则所有元素都可以使用-全局变量
- . 如果变量定义在某个选择器,则只有该选择器选中的元素和它的所有后代元素使用-局部变量
- [] 定义并使用告警颜色
-
:root {
--txt-wran-color: #c81623;
}
.wrap{
--el-color: #890;
}
.warn {
color: var(--txt-wran-color);
}
- 使用内联 CSS 变量
- . 利用 style 在元素上定义,仅供当前元素使用
- [] 渐变背景
-
0
1
2
3
4
5
6
7
8
9
-
<div class="fn-var">
<div style="--alpha:0">0</div>
<div style="--alpha:1">1</div>
//...
<div style="--alpha:8">8</div>
<div style="--alpha:9">9</div>
</div>
.fn-var-bg div {
background-color: rgba(255, 44, 00, calc(var(--alpha)*0.1));
}
- []
自适应布局 - 没有 --left 就使用48px;当元素 left 处于 hover 状态时,定义 --left 变量为30%
-
.grid {
display: grid;
transition: 300ms;
grid-template-columns: var(--left, 48px) auto;
}
.grid:has(.left:hover) {
--left: 30%;
}
- [] 自定义图形
- . 在 HTML 中利用 style 属性为元素指定不同的旋转角度,在 CSS 中使用
- . 每个元素旋转120deg
- . 可以制作加载,参考实例 animation
-
-
<div class="fn-var">
<span style="--rot:0"></span>
<span style="--rot:1"></span>
<span style="--rot:2"></span>
</div>
.fn-var-rot span {
position: absolute;
left: 0;
top: 50%;
width: 100%;
height: 4px;
margin: auto;
background: #f40;
transform: translateY(-50%) rotate(calc(var(--rot)*120deg));
}