Vue3中CSS使用JS变量

html-css012

Vue3中CSS使用JS变量,第1张

$ 符号 被 Sass 占用

@ 符号 被 less 占用

因此CSS中采用了 --

JS:

可以看到var只是个声明变量的关键字,color才是变量名。

PHP:

Scss:

CSS在使用变量的时候用到了一个函数叫var():

CSS:

创建个支持vue3的vite项目

进入到该文件夹

安装依赖

创建一个组件

使用中文引入变量

参考:

Vue 超好玩的新特性:在 CSS 中使用 JS 变量

我们在写样式的时候,可能一个app内的颜色,比如#00ff00,假设这个颜色我用了100次,穿插写在不同的页面里。当需要修改这个主题的时候,会让人抓狂。

所以我们可以使用变量来优化。

在html, css里面,它原始的定义方式及使用方法是这样的

其中,:root是根元素选择器,也就是<html>元素。在这里面定义的变量,可以在整个页面进行使用。

使用的时候,用var()函数进行调用。

注意:约定变量名须以两个连字符'--'开头

小程序中,用法基本也是一样的:

我们在wxss页面中进行定义

注意,page选择器是选中整个页面,前面是没有'.'号的。这是wxss系统自带的选择器。可以看到,用法和css原始用法差别不大。

你也可以在wxml里面直接使用!

这个wxss变量,既可以在每个页面mypage.wxss里面的page里声明,

,就能在所有页面里使用。

css自定义属性

css自定义属性分为全局定义属性和局部定义属性。

一:全局

1.定义:

:root{//此处的root是固定的。

--them-color:blue //自定义属性时以--开头,告诉浏览器这是自定义的。

}

2.使用:

<style type="text/css">

.div{

background-color:var(--them-color)

//如果自定义的属性出不来或其他问题,可在之后写属性值。例如:background-color:var(--them-color,blue)

也可写另一个属性名:background-color:var(--them-color,var(--them-color1))

}

</style>

<div class="div">111</div>

二:局部

1:定义

.foo{

--them-color:yellow

}

 .div{

color:var(--them-color)

}

2:使用:

<div class="foo div">121321</div> //此处的foo相当于一个基类,目的是存取所有的属性值,他的子元素从这个库里取属性。

例子:

<style type="text/css">

.foo{

--them:yellow

--width-outer:800px

--height-outer:400px

--width-inner:100px

--height-inner:100px

--bg-inner1:red

--bg-inner2:orange

--bg-inner3:purple

}

.div{

width: var(--width-outer)

height: var(--height-outer)

border:1px solid var(--them)

margin: 20px auto

}

.foo div:nth-child(1){

width: var(--width-inner)

height: var(--height-inner)

background-color: var(--bg-inner1)

}

.foo div:nth-child(2){

width: var(--width-inner)

height: var(--height-inner)

background-color: var(--bg-inner2)

}

.foo div:nth-child(3){

width: var(--width-inner)

height: var(--height-inner)

background-color: var(--bg-inner3)

}

</style>

<body>

<div class="div">

<div></div>

<div></div>

<div></div>

</div>

</body>

四:总结

在一个组件里或者全局将经常使用的属性提取出来,比如主题色,用的时候直接使用变量。便于维护代码,改的时候直接改一处即可。