因为css没有很好的计算能力,比如将px换算成rem单位要手动换算,所以出现了less
less是一门css的扩展语言,也叫css预处理器,常见预处理器有Sass Less Stylus
less中文网址:Less 中文网
less变量
@变量名:值;
必须有@前缀
不能包含特殊字符
不能以数字开头
大小写敏感,大小写不一样
// 定义一个粉色的变量
@color:pink;
// 定义一个字体为14px的变量
@font14:14px;
body {
background-color: @color;
}
div {
background-color: @color;
font-size: @font14;
}
less便于维护
需要将less编译成css文件才可以使用,使用Easy LESS插件
用这个插件写完less文件保存后就会自动生成一个相匹配的css文件
less中可以把子元素的样式直接写到父亲里面:
.header {
width: 200px;
height: 200px;
background-color: pink;
a {
color: red;
&:hover{
color: blue;
}
}
}
.nav {
.logo {
color: green;
}
&::before {
content: "";
}
}
生成css文件如下:
.header {
width: 200px;
height: 200px;
background-color: pink;
}
.header a {
color: red;
}
.header a:hover {
color: blue;
}
.nav .logo {
color: green;
}
.nav::before {
content: "";
}
注意:伪类选择器、伪元素选择器、交集选择器不属于谁的后代,它属于主元素的一部分,应该在前面加上”&“符号
任何数字、颜色或者变量都可以参加运算。就是Less提供了加减乘除算术运算。
// less
@border: 5px + 5;
div{
width: 200px - 50;
height: 200px * 2;
border: @border solid red;
}
img {
width: (80rem / 50);
height: (80rem / 50);
}
/* css自动生成的代码 */
div {
width: 150px;
height: 400px;
border: 10px solid red;
}
img {
width: 1.6rem;
height: 1.6rem;
}
注意:
运算符的左右两侧必须用空格隔开,不然容易出问题。
如果两个数参与运算,只有一个数有单位,以这个单位为准。
如果两个数参与运算,两个数都有单位,而且不一样的单位,以第一个数的单位为准。