变量

和sass不同,less的变量前缀是符号“@”

@arguments变量

@arguments包含了所有传递进来的参数。

.border_arg(@w:30px,@c:red,@xx:solid){
  border:@arguments;  //border:30px red solid;
}

混合

一个元素引用另一个元素的样式

1、混合变量

例如:.border{ border:solid 10px red; }

如果.div也想用这个样式直接写:

.div{
  .border
}


可带参数

2.变量没带值

.border-radius(@radius){ css代码 }

.border_02(@border_width){
  border:solid yellow @border_width;
}
.test_hunhe{
  .border_02(30px);
}

3.变量带(默认)值

.border-radius(@radius:5px){css代码}

.border_03(@border_width:10px){
  border:solid green @border_width;
}
.test_hunhe_03{
  .border_03();
}

另外,虽然.border-02 和.border-03里面的变量都叫@border-width 但它们不冲突

匹配模式

举个例子:

.flo(l){
    float:left;
}
.flo(r){
    float:right;
}
.class1{
    width:100px;
    height:100px;
    .flo(l);
}  //这样就设置了这个class1类左浮动
.class2{
    width:100px;
    height:100px;
    .flo(r);
}  //这样就设置了这个class2类右浮动

函数

参考:http://less.bootcss.com/functions/#functions-overview

嵌套

&代表上一级。less嵌套最好不要超过三层

假如我们需要设置hover:

a{...}
a:hover{...}
可以改写为:
a{
    ...
    &:hover{...}
}

避免编译、!important

有时候我们需要输出一些不正确的CSS语法或者使用一些LESS不认识的专有语法。

要输出这样的值我们可以在字符串前加上一个 ~

例如:

width:~'calc(100%-35)';
height:~'calc(300px-20px)';

编译后(.css文件):

width: calc(100%-35);
height: calc(300px-20px);

!important:优先级提升,和css的使用一致

results matching ""

    No results matching ""