Less
是一种动态样式语言,属于CSS预处理语言
的一种,它使用类似CSS的语法,为 CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。 lesscss可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。
less简介
常用的css预处理语言:Sass/Scss Less Stylus
less中文网
编译环境或者在浏览器端使用
- 安装
node.js
(必须) - 使用开发工具
visual studio code
安装插件1:easy less 2:easy sass 3:view in browser
- 使用
koala
(国人开发的全平台的LESS
编译工具) - 在浏览器中使用(需要注意的是
link
标签一定要在less.js
之前引入,并且link
标签的rel
属性要设置为stylesheet/less
)
1 | <!-- 浏览器端使用 --> |
使用规则
less注释
//
以//开始的注释,不会被编译到生成的css文件中/**/
以/**/包裹的注释会被编译到生成的css文件中~
值 避免编译
1 | #main{ width: ~'calc(300px - 30px)' } |
less变量(variables)
- 普通变量以
@
开头定义: @base: #333 使用: .box{color: @base}
- 作为选择器或属性名或URL 需要加(
@{变量}
)
1 | @images: "/flow/images"; |
混合(mixins)
- 普通的混合(混合会输出到样式中)
1 | .bordered{ |
- 不带输出的混合(后面加上
()
混合不会输出到样式中)
1 | .bordered(){ |
- 带参数的混合,可以有默认值
1 | /* 多个参数推荐使用分号分隔,参数顺序可以调换但必须加加名称来引用, 有默认值时可以不用传值 */ |
- !important在mixin调用之后使用关键字将其继承的所有属性标记为!important
1 | .foo (@bg: #f5f5f5, @color: #900) { |
嵌套规则
嵌套规则模仿了html的结构,使得css代码更加清晰明了 &
表示当前选择器的所有父选择器
1 | // less写法 |
运算
任何数值,颜色和变量都可以进行运算,less会自动推断数值的单位,所以不必每个值都加上单位,运算符与值之间必须以空格分开
1 | @width: 450px; |
合并属性
“+”逗号分隔
所合并的属性值,“+_”空格分隔
所合并的属性值
1 | /* + 逗号分隔所合并的属性值 */ |
条件判断
less中通过when给混合添加限定条件,只有条件满足才会执行混合中的代码,可以使用(> < >= <= =) 逻辑运算符等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29// , 逗号分隔符:相当于 或运算 ||,只要有一个符合条件就会执行
.size(@width,@height) when(@width=100px) , (@height=100px){
width: @width;
height: @height;
}
// and 运算符 ,相当于 与运算 &&,必须条件全部符合才会执行
.size2(@width,@height) when(@width=100px) and (@height=100px){
width: @width;
height: @height;
}
.div1{
.size(100px, 50px);
background: red;
}
.div2{
.size2(100px, 100px);
background: red;
}
// 编译后
.div1 {
width: 100px;
height: 50px;
background: red;
}
.div2 {
width: 100px;
height: 100px;
background: red;
}
更多less使用方式,可以参考以下链接