less


less的简介
  • less是一门css的预处理语言
  • less是一个css的增强版,通过less可以编写更少的代码实现更强大的样式
  • 在less中添加了许多的新特性,对变量的支持,对mixin 的支持等
  • less语法大体上和css语法一致,但是less中增添了许多对css的扩展
  • 浏览器无法直接执行less代码,要执行必须将less转换为css,然后再由浏览器执行

CSS兼容性不好的地方( 部分浏览器无法使用 )
  • 创建三个盒子box$*3 ( $表示任意值 )
  • CSS原生也支持变量的设置 ( 可以同时改变所有变量 )
html{
	--color: #bfa;
	--length:100px;
}
.box{
	width: var(--length);
	background-color: var(--color);
}
  • calc() 计算函数,例如:width: calc(200px*2);

less语法
变量:
  • 在变量中可以存储一个任意的值
  • 并且我们可以在需要时,任意的修改变量中的值
  • 变量的语法: @变量名
  • 以下是less的使用
/*less的使用*/
@a:200px;
@b:#bfa;
@c:box1;

.box{
	/*如果是直接使用则以 @变量名 的形式使用即可*/
	width: @a;
	color: @b;
}

/*如果作为类名,或者一部分值使用时必须以 @{ 变量名 } 的大括号形式使用*/
.@{c}{
	width: @a;
	backgroud-image: url("@{c}/1.png")
}

@d:200px;
@d:300px;
div{
	/*变量发生重名时,会优先使用比较近的变量*/
	@d:100px;
	width:@d;
	height:@e;
}
/*可以在变量声明前就使用变量*/
@e:100px;

div{
	width:300px;
	/*可以用$得到width的值*/
	height; $width;
}

父元素(使用&)
.box{
	.box1{
		color:red;
	}
	/*	为box设置一个hover
		& 就表示外层的父元素
	*/
	&:hover{
		color:blue;
	}
}

扩展 extend ()
/* extend( ) 对当前选择器扩展指定选择器的样式( 选择器分组 )*/
.p1{
	width:100px;
	height:200px;
}
.p2:extend(.p1){
	color: red;	  /*p2的样式会比p1多一个红色字体*/
}


.p3{
	/*直接对指定的样式进行引用,这里就相当于将p1多样式在这里进行了复制*/
	/* mixins混合 */
	.p1()
}


/*使用类选择器时可以在选择器后面添加一个括号,这时我们实际上就是创建了一个mixins*/
.p4(){
	width:100px;
	height:100px;
	background: red;
}
.p5{
	.p4;	/*p4的所有样式复制给p5,且p4不出现*/
}

混合函数
  • 在混合函数中可以直接设置变量
.test(@w,@h,@bg-color){ /* 可以在@变量名后设置默认值 */
	width: @w;
	height: @h;
	background-color: @bg-color;
}

div{
	/*调用混合函数,按顺序传递参数*/
	.test(200px,300px,#bfa)
}

less的补充
  • 在less中所有的数值都可以直接进行运算
width: 100px + 100px;
  • 可以通过import来将其他的less引入到当前的less中(实现模块化处理)