less之路

1.less的使用方法 :自行搜索

2.注释:

      //单行注释(通常用于生产环境)
      /**/多行注释
      区别:多行注释会被解析到css文件中,单行不会

3.变量

变量允许我们定义一系列通用的样式,然后在需要的时候去调用所以在做全局样式调整的时候我们可能只需
要修改几行代码就好了
    @符号开头:@width:12px;
     例子: @width:2px;
           @style:solid;
           @red:red;
           @blue:blue;
           .box1{
                width:200px;
                height:100px;
                border:@width @style @red;
          }
           .box2{
                width:200px;
                height:100px;
                border:@width @style @blue;
          }
           .box3{
                width:200px;
                height:100px;
                border:@width @style @red;
                background:@red;
          }
更改样式只需要引用变量名即可,方便

4.作用域(变量发生作用的区域)

  .box{
        @width:20px;
        .main{
            wdith:@width;
        }
  }
  这样是没问题的,{}就是域,和js一样
.box2{
    width:@width;//在这里引用@width变量
}
这样是错误的,会报错

4.嵌套

我们可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码开起来更加
清晰。
例如:写一个导航栏
html结构:
  <nav>
      <div class='content'>
            <div.left>
                  <a href="#"></a>
                  <a href="#"></a>
                  <a href="#"></a>
            </div>
            <div.right>
                  <a href="#"></a>
                  <a href="#"></a>
                  <a href="#"></a>
            </div>
      </div>
  </nav>
  nav{
      height:50px;
      background:blue;
      .content{
          margin:0 auto;
          width:80%;
          a{
                color:#fff;
                &:hover{  //&符号代表a标签本身
                    color:red;
                }
          }
          .left{
                float:left;
                 &.padding-left{  //给.left添加padding-left,需要&符号,看编译好的css
                        padding-left:20px;
                  }
          }
          .right{
                floar:right;
          }
     }
}
结构很清晰,父子级等关系很明显

5.混合

@border:'border solid #ccc';
box{
    width:@border;
}
以上是错误的方式
混合:将一个定义好的classA引入到另一个classB中,从而实现classB继承classA中的所有属性
1.最简单的混合方式:
.classA{
      border:1px solid #ccc;
}
.clearFix{
    *zoom:1;
    &:after{
        content:' ';
        display:block;
        clear:both;
    }
}
//公用样式放到前面
.classB{
    .classA;
    .cleafFix;
}
2.带参数的混合:
.border(@color){
     border:1px solid @color;
}
.box1{
      .border(#ccc);
}
.box2{
      .border(#f00);
}
3.多个参数的混合
.border(@width,@style,@color){
     border:@width @style @color;
}
.box1{
      .border(1px,solid,#ccc);
}
.box2{
      .border(1px,solid,#f00);
}
.box3{
      .border(2px,solid,#f00);
}
.box3{
      .border(2px,dotted,#f00);
}
实参形参一一对应,一个都不能少
4.带默认值的参数混合
.border(@width:1px,@style:solid){
     border:@width @style #ccc;
}
.box1{
      .border(1px dotted);//如果修改第二个参数的话都必须传实参,一一对应
}
.box2{
      .border();
}
.box3{
      .border(2px);
}
.box3{
      .border();
}
5.arguments变量:代表了所有的参数(在不在乎参数顺序的时候可以使用)
.border(@style:solid,@width:1px){
     border:@arguments #ccc;
}
.box1{
      .border(1px dotted);//如果修改第二个参数的话都必须传实参,一一对应
}
.box2{
      .border();
}
.box3{
      .border(2px);
}
.box3{
      .border();
}
5.模式匹配
.border(top,@width:1px){
      border-top:@width solid #ccc;
}
.border(right,@width:1px){
     border-right:@width solid #ccc;
}
.border(bottom,@width:1px){
     border-bottom:@width solid #ccc;
}
.border(left,@width:1px){
     border-left:@width solid #ccc;
}
.border(@_,@width:1px){   
      width:100px;
}
.box1{
    .border(top,5px);
}
.box2{
    .border(right);
}
.box3{
    .border(bottom,round(2.3)*1px);//Math函数用法
}
.box4{
    .border(left);
}
//@_  代表公用样式,即使有@_,使用的时候还是要传首参
//Math()函数 :
  round(5.5);四舍五入
  ceil(2.1);return 3  ,向上取整
  floor(2.9);return 2,  向下取整
6.命名空间
.blue{
      .button{
            background:blue;
      }
}
.red{
      .button{
            background:red;
      }
}
.box{
    .red > .button;
}
7.import
引入另一个less文件
@import 'global';//后缀名.less可加可不加
例如写一个样式重置,在里面可以定义一个变量@rem:32rem;这个变量可以直接使用
8.避免编译
.box{
      width:@rem;
      font:(12/@rem)~'/'(20/rem) '宋体';
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,168评论 19 139
  • 1、LESS的官网:http://lesscss.org 2、Sass官网地址:http://sass-lang....
    Howie223阅读 3,810评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,126评论 25 709
  • 昨日,收到皇甫战友从杭州寄来的明前龙井,夜间我就梦到了他。梦回吹角连营,依然年轻帅气,梦中他和另一个战友李良兵都调...
    入红尘难阅读 626评论 1 5
  • 昨晚看天气预报,说这几天有暴雨。老公说:“别听它的,哪回准了。”于是我也没在意。今天一大早,幼儿园连发了三个通知:...
    微霞满天阅读 270评论 0 1