为什么 Vue3 选择了 CSS 变量

本文探讨了Vue3选择CSS变量的原因,对比了CSS变量与Sass/Less变量的区别,以及在Vue2和Vue3中如何使用CSS变量。Vue3新增的vars绑定使得CSS变量在SFC中更加便捷,同时介绍了CSS变量在浏览器兼容性和复杂项目中的优势。
摘要由CSDN通过智能技术生成

为什么 Vue3 选择了 CSS 变量

Vue 3 新增了一条实验性的功能——「单文件组件状态驱动的 CSS 变量」

为什么 Vue3 选择了 CSS 变量

 

看到这个,我脑子里有以下的疑问?

  • CSS 变量是什么?
  • Sass/Less 中不是有变量的定义么,为什么还需要使用 CSS 变量?
  • 现有的 Vue 不是通过 :style 的方式定义去动态绑定 CSS,那 CSS 变量和这种方式有什么区别?
  • Vue 3 做了哪些操作,让 SFC (单文件组件)能更好的使用 CSS 变量

以下对这些问题进行探讨

CSS 变量基础

CSS 变量并不是某个框架的产物,而是 CSS 作者定义的一个标准规范

CSS 变量又称为 CSS 自定义属性,它包含的值可以在整个文档中重复使用。由自定义属性标记设定值(比如: --main-color: black;),由 var() 函数来获取值(比如: color: var(--main-color);)

为什么选择两根连词线(--)表示? 因为变量 ? 被 Sass 用掉了,@ 被 Less 用掉了。为了不产生冲突,官方的 CSS 变量就改用两根连词线了

CSS 变量一个简单例子如下,CSS 变量基础演示地址

<div class="parent">
  I am Parent
  <div class="child">
    I am Child
  </div>
</div>
.parent {
  /*  变量的作用域就是它所在的选择器的有效范围,所以.parent 读取不到 child 中的变量  */
  color: var(--body-child);
  /*  定义变量  */
  --parent-color: blue;
}
.child {
  /*  通过 var 读取变量  */
  color: var(--parent-color);
  --child-color: green;
}

结果展示

为什么 Vue3 选择了 CSS 变量

 

我们现在 .parent 中定义变量 --parent-color: blue;,在 .child 中使用 color: var(--parent-color);

需要注意的是,变量的作用域就是它所在的选择器的有效范围,比如 .child 中定义的 --child-color: green;, 在 .parent 读取不到的,只针对 .child 元素下的元素有效

如果希望能够在 HTML 文档中都能访问到,则可以定义类 :root 中

除了基础的使用,还有以下几点需要注意

  • CSS 变量的命名是对大小写敏感的,也就是 -
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酔清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值