小程序wxss;css中使用变量

html-css031

小程序wxss;css中使用变量,第1张

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

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

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

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

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

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

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

我们在wxss页面中进行定义

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

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

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

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

本文已经假设你熟悉CSS变量,如果不熟悉,可以看我写的CSS变量基础知识: https://www.jianshu.com/p/a0f6233cf335

在研究Vue 3的“单文件驱动的CSS变量”之前,我们先看看Vue 2怎么使用CSS变量。

:style是行内样式,行内样式的缺点至少有三个:1. 字符多,写起来麻烦;2. 行内意味着无法复用,class可以复用;3. :style无法定义伪元素的样式。

CSS变量优势其实很明显,上面案例中, <div class="a-container">A元素</div>并没有写style,而且, a-container 是可以复用的,可以用在无数个元素上。最后,在<style>标签里可以定义伪元素的样式。

Vue 3加入了“单文件驱动的CSS变量”,它也是一种语法糖,到今天有2个版本,旧版简称“style vars”版本,因为被人诟病“创造了方言”而改成了新版,旧版我就不说了,新版用法举例:

也就是说,凡是<style>中使用了v-bind函数,都将传值视为CSS变量表达式,而且缺省 -- 符号。变量会自动去<script setup>里查找同名顶层变量。

拼接字符串要遵循CSS变量规范,CSS变量规范并没有直接拼接字符串的办法,而是采用calc乘法。

写起来是对象的点运算符,但是要用引号包裹起来,而且为了跟CSS常用的双引号区分,最好使用单引号。

Vue 2的写法在3里依然可用,而且更贴近原生,可以说是标准写法,而Vue 3实际上是2的语法糖。

方便程度上说,Vue 3的肯定更方便。

由于使用CSS变量,所以IE全不支持,老内核Edge全不支持。

以前不行现在可以。

CSS中使用expression有ie才能识别。IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。就是说CSS属性后面可以是一段Javascript表达式,CSS属性的值等于Javascript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。

例子:

1.给元素固有属性赋值

下面是定义container容器的宽度,如果<725就为自己的宽度,否则就等于725,相当于max-width:725px。

<style type="text/css" media="screen">

#container { width: expression((documentElement.clientWidth >725) ? "725px" : "auto" )}

</style>