less常见用法
最近在写组件库,对Less的用法感觉很多都生疏了,所以去看了下官方文档跟掘金~ 整理一篇笔记出来
定义常量(只能定义一次,不能重复使用)
1 | @color: #999; |
变量运算
- 加减法时,以第一个数据的单位为基准
- 乘除法时 注意单位一定要统一单位统一
嵌套用法
&:代表上一层选择器的名字
媒体查询
1 | #main { |
默认参数写法
1 | .border(@a:10px,@b:50px,@c:30px,@color:#000){ |
方法匹配模式
1 | /* Less */ |
方法的条件筛选
Less没有if和else,可是他有when
1 | #card{ |
方法使用!important 会给属性都加上!important。
循环方法
1 | Less栅格系统 |
属性拼接方法
+_代表的是空格,+ 代表的是逗号
逗号
1
2
3
4
5
6
7
8
9
10
11
12/* Less */
.boxShadow() {
box-shadow+: inset 0 0 10px #555;
}
.main {
.boxShadow();
box-shadow+: 0 0 20px black;
}
/* 生成后的 CSS */
.main {
box-shadow: inset 0 0 10px #555, 0 0 20px black;
}空格
1
2
3
4
5
6
7
8
9
10
11
12
13/* Less */
.Animation() {
transform+_: scale(2);
}
.main {
.Animation();
transform+_: rotate(15deg);
}
/* 生成的 CSS */
.main {
transform: scale(2) rotate(15deg);
}
继承
extend 是 Less的一个伪类。它可以继承所匹配声明中的全部样式
extends 关键字使用
1 | .animation{ |
all全局搜索替换
使用选择器匹配到的全部声明
1 | #main{ |
导入
- 省略文件后缀
1
import 'main'; // import 'main.less'
- @import 的位置可以随意放置
1
2
3
4
5#main{
font-size: 15px;
}
@import 'style' - reference 引入外部文件,但不会把导入的文件编译到最终输出中,只引用
1
@import (reference) 'bootstrap.less';
- once @import语句的默认行为。表明相同文件只会被导入一次,而随后的导入文件重复的代码都不会被重复解析
1
2@import (once) "foo.less";
@import (once) "foo.less"; // 不会被重复解析 - multiple 使用@import(multiple)允许导入多个同名文件
1
2
3
4
5.a{
color: green;
}
@import (multiple) 'foo.less';
@import (multiple) 'foo.less';
其他
避免编译
结构 ~’ 值 ‘
1 | #main{ |
变量拼串
在下面例子中, 实现了不同的 transtion-delay、animation、@keyframes;
结构: ~’字符@{变量}字符’
1 | .judge(@i) when(@i=1){ |
使用JS
Less是由JS编写的
1 | /* Less */ |