HTML5学堂:less可以简化CSS的一些书写,并提供了很多的功能。在JavaScript中有变量和作用域,同样的,less给我们提供了变量和作用域这样的功能,这样可以方便我们进行样式的计算和书写了。
今天主要先来介绍less中的变量使用,之后会讲解变量的计算,最后则是介绍变量作用域问题。均是以实例来讲解的,一起来看我们今天的主要内容吧~
在less当中可以定义变量,然后用变量作为某属性的属性值,从而通过改变一个变量的值,改变所有相应属性的属性值。这样就可以保证自己的一致性,并尽可能减少滚动代码来查找、复制、粘贴等繁琐的工作。
先来看一个案例,我们希望的显示效果是:
对应的html结构代码
对应的less文件代码
在这个案例当中,我们希望图像的阴影和a标签以及h2标签的文字颜色均是蓝色#39f的(之所以需要h2也是蓝色,在于我们将超出显示为省略号设置在了h2标签当中,如果仅仅设置a标签的颜色,那么多出来的省略号就成了黑色)。即便是颜色值发生变化,这三个颜色值也应当是保持一致的。这时无论我们书写代码还是更改需求时修改样式,都需要写三遍,很是麻烦。
此时,我们在less文件中(第25行的位置)定义一个变量——@bluecolor:#39f;之后,将所有使用到这个颜色的地方(第50、66、69行)均更换为这个变量。
这时,如果我们希望能够发生颜色的变化,只需要调整变量的值即可,如,将变量的值调整为#f39;
代码更改后为如下显示效果:
符合条件的变量为止。
欢迎沟通交流~HTML5学堂
除了上面提到的可以使用变量之外,我们还可以根据变量进行相关计算。如:我们定义了三个块,定义了一个变量@bacColor,进行了颜色值的存储,之后由于每个块的背景颜色不同,因此直接使用变量进行计算。需要注意的是,变量与操作符(+、-符号)之间需要使用空格进行分隔。对于代码中.common-div如果不明白的话,可以翻看前面的《快速开发CSS的利器-less混入》的日志。
代码实例:
结构代码
less文件代码
对于颜色的变量,我们可以进行计算,那么对于一些宽高、字体大小等以px为单位的属性,可否使用变量进行计算呢?于是我进行了一下尝试。将less代码调整成了如下内容:
显示的效果如人所意,三个块中的文字大小分别以16px、20px和12px进行了显示。
学过JS的同学肯定都知道,存在变量作用域问题,对于我们的less中的CSS代码,既然已经存在了变量,那必然也会有所谓的变量作用域的问题。看如下demo:
less文件中的代码:
显示效果:
在p元素上面,出现了两个fontSize的变量,那么和JS寻找变量的方式是一样的,就近原则,一级一级往上翻,直到翻到需要的变量为止。
最后来总结一下我们的知识内容:
1、对于一些值,我们可以如同JS一样,设置成变量,然后通过变量的操作进行所有符合条件代码的统一控制。
2、less中的CSS变量是可以进行运算的,而且不需要进行额外的处理(即不需要去掉px或者转换为字符串等),直接使用最基本的CSS样式书写和运算即可。
3、也存在所谓的“变量作用域”,其基本原理等同于JS的作用域,由自身开始,不断向其父级进行变量的查找,直到查找到符合条件的变量为止。
欢迎沟通交流~HTML5学堂