CSS预处理less | 青训营笔记

110 阅读2分钟

今天来整理一下less

less 是一门 css 预处理语言,增加了变量、Mixin、函数等特性,使 css 更易维护和拓展。通常用在 vue 开发中。

less 与 css 简单语句的区别

image.png less 与 css 简单语句的区别 (左边是 css,右边为 less)

可以看出 less 对 css 选择器做出了调整,row、com 等皆为 contain 的子集元素,在 less中可以直接在 contain 内对其进行设置,这种方式称为嵌套写法,减少代码量的同时,层次也更为清晰以上是对 less 的简单介绍,下面是对 less 的变量部分的常用语法

1 普通变量

语法:@变量名:变量值

例://定义变量@bgcolor#fff;
​
@boxhight50px;
​
//使用变量
​
.box{
​
color:@bgcolor;
​
Height:@boxhight;
​
}

2 在字符串中使用变量

语法:@变量名:变量值

例://定义变量

@imge:”./img”
​
//使用变量
​
body{
​
background:url(“@image/1.png”)
​
}

3 属性变量

语法:

选择器{@{变量名}:值}

例:

@ccccolor
​
.wrap{@{ccc}:red
​
}

4 选择器常用变量

语法:

@{变量名}{}

例:

@bbox:#div
​
@{bbox}{
​
color:red
​
}

5 导入其他的 less

语法:

@变量名:地址

@inport”@{变量名}”
​
例:
​
@src:”./header.less”
​
@inport@{src}

补充:

1 变量作用域

每个 css 样式的{}都是一个作用域,可参照 js 的函数作用域理解

但通常情况下,最好使用全局变量,避免无法重复使用

例:

@color:red;
​
.wrap{
​
color: @color; //.wrap 自己作用域内没有 color 变量,所以用上一次作用域中的变量.
​
}
​
.box{
​
@color: @58a;
​
color: @color; //因为.box 自己作用域中有同名变量,就会先用自己作用域内变量的值.
​
}

2 变量的计算

变量的值可以参与计算

例:

@width300px
​
.box{
​
width:@width - 100px//px 可以不写
​
}

3 变量名重复时

在变量被重复定义时,只会使用最后定义的变量,less 会从当前作用域向上搜索。这个行

为类似于 CSS 的定义中始终使用最后定义的属性值。

例:

.class{
​
@var:1;
​
@var:2;//one 选中的搜索.brass{@var:2;
​
three:@var;//结果为 three:4;@var:3;
​
@var:4;//three 选中的搜索
​
}
​
one:@var;//结果为one:2;
​
}