前端基础之 CSS 变量

前端基础之CSS变量

演示一下怎么用

先创建一个正方形

f48c0316df908dfdc2376c0a92feb06.png

66509f7e0d7800c004ab8111bbe4d6e.png

我们注意到宽高是一样的,代码是重复的

重复的代码一定会带来维护上的不便,我这个代码比较少,所以你觉的没啥,但是代码多了以后,维护起来就会非常头疼

css变量怎么写呢 --变量名:值

比如:

--size: 300px;

后面调用的话

width: var(--size)

5a1528d3b666f5ad349c9c4d3aa01f4.png

当我们想改变正方形宽高时,只需要改变--size的值就行

变量可以像css属性一样继承,所以如果有一个变量要整个网页用的话,可以写到html或者:root里

既然是变量,那么我们可以还可以参与计算

为了看起来方便,我们再创建一个子div

a9956602f2bc1edbcba5db873bcffa2.png

我们要让box的padding是宽的20%,那么就可以这么写

padding:calc(var(--size) * 0.2)

d5be5b2236a77bfe781f69addfef281.png

让子元素宽高是父元素的一半

b6193e5ae8af1a1ea4ad5b01233251f.png

85af79c07aca3b7644e174c89ba25d4.png

父元素改成100px

fe8ecba7808dc6454bdd2ca261bcce5.png

也没有问题

用来写全局主题

14e830a491425609f0ee870b29ec706.png

478734ec240b1133ece0767311f8452.png

虽然主题色是相同的,但不同的地方透明度不同

改变下主题颜色的透明度,用rgb三个值做变量,底下用rgba调整透明度,如果想预览是什么颜色,可以用注释

3d3ea64fc7ea2aae70a73fd6024cc9d.png

f5d9a6362aad8f8ba823a4fbb481de6.png

如果多个元素动画是一样,但是大小不一样,所以偏移量也不一样,那么就需要写多个动画

只需要在每个元素上设置一个css变量,然后在动画里调用就行了

<div class="box" style="--dotsize: 10px"></div>
<div class="box" style="--dotsize: 5px"></div>
transform:translate(calc(var(--dotsize) * 3),calc(var(--dotsize) - 3))

ok,先说到这里,更多的用法大家自己慢慢挖掘,祝大家早日精通csstrollface