LESS定义:
LESS是一门CSS预处理语言,它扩展了CSS语言,增加了变量,Mixin,函数等特性。优点:使得CSS更易维护与扩展。
简单的说:可以更方便的编写CSS代码,并更方便维护与扩展。
注意:LESS只是一个纯文本,不影响代码的编写
① 变量定义:
格式: (变量名: 变量值;)
其中: @jdRed为变量名,rgba(201,21,35,0.8)为变量值。
@jdRed:rgba(201,21,35,0.8);
变量定义完毕后,就可以使用该变量代替固定的值,如果需要值时,直接修改该变量的值即可,更利于维护代码。
/* 设置了body,h3,ul的背景颜色均为一样 */
body {
background-color: @jdRed;
}
h3 {
background-color: @jdRed;
}
ul {
background-color: @jdRed;
}
② 注释:
a). less支持和js一样的注释,并且这样的注释,不会被编译。
//@minWidth: 100px; 不会被编译
b). 使用css注释 name编译的时候,注释也会被保留。
/*
@minWidth: 100px;
@imagesSize: 100px 100px; 会被编译
*/
③ 混合(Mixin):
目的: 从现有的样式中添加属性
.oneColor(){
background-color: red;
border:1px solid red;
color: red;
}
#item {
.oneColor;
font-size: 20px;
}
#menu {
.oneColor;
line-height: 50px;
}
.oneColor(){
background-color: red;
border:1px solid red;
color: red;
}
#item {
background-color: red;
border:1px solid red;
color: red;
font-size: 20px;
}
#menu {
background-color: red;
border:1px solid red;
color: red;
line-height: 50px;
}
.oneColor(@color:#0094ff){
background-color: @color;
border:1px solid @color;
color: @color;
}
/* 带参数的引用 */
#item {
.oneColor(#fff);
}
/* 不带参数的引用(会采用默认值) */
#menu {
.oneColor();
}
/* 由于带有参数,会修改内部的值,变为yellow */
#item {
background-color: #ffffff;
border:1px solid #ffffff;
color: #ffffff;
}
#menu {
background-color: #0094ff;
border:1px solid #0094ff;
color: #0094ff;
}
.border(@color: #aaa) {
-webkit-border-radius: @color;
-moz-border-radius: @color;
border-radius: @color;
}
④ 嵌套(比较常用)
- -a). 伪元素,交集选择器,:hover等,需要紧挨着元素的样式,并用“ & ”符号来替代元素
.main{
width: 100%;
height: 40px;
/* 利用&符号来替代元素名 */
&:hover{
height: 90px;
}
&::before {
content: '';
position: absolute;
width: 20px;
height: 20px;
background-color: red;
border-radius: 10px;
}
}
编译后将会得到:
.main {
width: 100%;
height: 40px;
}
.main:hover {
height: 90px;
}
.main::before {
content: '';
position: absolute;
width: 20px;
height: 20px;
background-color: red;
border-radius: 10px;
}
ul{
width: 100%;
li {
width: 100%;
text-align: center;
height: 50px;
line-height: 50px;
border-bottom: 1px solid gray;
border-right: 1px solid gray;
a{
color: black;
}
}
}
经过编译后,将会得到:
ul{
width: 100%;
}
ul li{
width: 100%;
text-align: center;
height: 50px;
line-height: 50px;
border-bottom: 1px solid gray;
border-right: 1px solid gray;
}
ul li a {
color: black;
}
⑤ 运算
less中还提供了加、减、乘、除等运算(其中可以用来颜色和属性值的运算)
/* 定义一个变量 */
@width: 100px;
.plus {
/* 运算时,可以不用加上单位,最终将得到宽度加10 */
width: @width+10;
}
编译得:
.plus {
width: 110px;
}