ess就是相当于jQuery
less css属于动态样式语言,属于css预处理的一种,他的语法类似于css,为css赋予了动态语言的特性,使得css能够定义变量,函数继承与运算,使得css更加方便维护和管理;
less里面和编程语言一样有注释,分为两种
1. // 这种注释只是在less里面可以看见的不会再编译完之后的css文件里面看见
2./* */ 这种注释可以编译 并且能在编译完的css文件里面看见。
@test : 300px; body{ background: red; div{ height: @test; width: @test; ul{ background: blue; li{ line-height: 20px; } } } }
.box1{ width: 300px; height: 300px; background: red; } .box2{ margin-left: 400px; .box1; //直接用了.box1 使得box1里面的所有样式拷贝到了box2里面 }
.box1 { width: 300px; height: 300px; background: red; } .box2 { margin-left: 400px; width: 300px; height: 300px; background: red; }
.box1(@act_width,@act_height){ //能接受两个参数一个是实际的宽度一个是实际的高度 width: @act_width; height: @act_height; background: red; } .box2{ margin-left: 400px; .box1(100px,100px); }编译后的代码是这样的
.box2 { margin-left: 400px; width: 100px; height: 100px; width: 300; height: 300px; background: red; }就不会出现box1了
bor(@act_px){ border:@act_px solid blue; } .box2{ margin-left: 400px; .box1(100px,100px); bor(8px); }
.box1(@act_width,@act_height){ //能接受两个参数一个是实际的宽度一个是实际的高度 width: @act_width; height: @act_height; background: red; } .bor(@act_px:5px){ border:@act_px solid blue; } .box2{ margin-left: 400px; .box1(100px,100px); .bor(8px); } .box{ .box1(100px,100px); .bor(); }
.tri{ width: 0px; height: 0px; overflow: hidden;; border-color: red transparent transparent transparent; border-style: solid dashed dashed dashed; //把其余的部分设置为虚线(dashed)是为了兼容IE6 border-width: 10px; }这研究可以用匹配模式了
.triangle(top,@c:red,@w:10px){ border-color: transparent transparent @c transparent; border-style: solid dashed dashed dashed; border-width: @w; } .triangle(bottom,@c:red,@w:10px){ border-color: @c transparent transparent transparent; border-style: dashed dashed solid dashed; border-width: @w; } .triangle(left,@c:red,@w:10px){ border-color: transparent @c transparent transparent; border-style: dashed solid dashed dashed; border-width: @w; } .triangle(right,@c:red,@w:10px){ border-color: transparent transparent transparent @c; border-style: dashed dashed dashed solid; border-width: @w; }
.tri{ .triangle(right,blue,15px) }
.triangle(@_,@c,@w){ width: 0px; height: 0px; overflow: hidden; }
.triangle(@_,@c,@w,@h:500px){ width: 0px; height: 0px; margin-left: @h; overflow: hidden; }
@a:100px; @b:200px; .operation{ width: @b -10; }
.test { width: 400px; } .test ul li { float: left; cursor: pointer; width: 100%; height: 25px; line-height: 25px; background: #ccc; margin-top: 5px; } .test ul li:hover { background: red; }
.test{ width: 400px; ul{ li{ float: left; cursor: pointer; width: 100%; height: 25px; line-height: 25px; background: #ccc; margin-top: 5px; &:hover{ //表示的是它上一层的选择器 background: red; } } } }
.avoid{ width: ~'calc(@b - 20)'; }
.avoid { width: calc(@b - 20); }
.box2{ margin-left: 400px; .box1(100px,100px); .bor(8px); } .impor{ .box2()!important; }就会编译成一样的格式
.impor { margin-left: 400px !important; width: 100px !important; height: 100px !important; background: red !important; border: 8px solid #0000ff !important; }