Less核心手册

中文网 http://lesscss.cn/
https://less.bootcss.com/
http://lesscss.org/

1.为什么需要less?
1.1CSS的语法虽然简单, 但它同时也带来一些问题
1.2CSS需要书写大量看似没有逻辑的代码, 不方便维护及扩展, 也不利于复用, 造成这些原因的本质源于CSS是一门非程序式的语言, 没有变量/函数/作用域等概念

2.什么是less?
2.1Less 是一门 CSS 预处理语言,使用了类似CSS的语法,为CSS赋予了动态语言的特征。
2.2它扩展了 CSS 语言,增加了变量、Mixin(混合)、嵌套、函数和运算等特性,使 CSS 更易维护和扩展
2.3一句话:用类似JS的语法去写CSS

3.less特点
作为CSS的一种扩展,LESS不仅向下兼容CSS的语法,而且连新增的特性也是使用CSS语法。这样的设置使得学习LESS非常轻松,而且你可以在任何时候回退到CSS。

4.less基本使用:
4.1在客户端直接运行
编写less文件-->引入less文件-->引入less.js-->运行
注意点:
一定要先引入less.css再引入less.js
一定要在服务端运行才能生效, 本地运行无效
引入less.js就是让网页在运行的时候动态的区解析less的css,动态的设置给元素

1 使用方式

1 cdn


注意:link 标签一定要在 Less.js 之前引入,并且 link 标签的 rel 属性要设置为stylesheet/less



2 使用npm安装

npm install -g less

编译

lessc styles.less > styles.css

2 功能介绍

1 变量
1.1 值变量:变量是常量 ,所以只能定义一次,不能重复使用
以 @ 开头 定义变量,并且使用时 直接 键入 @名称

      /* Less */
      @color: #999;
      @bgColor: skyblue;//不要添加引号
      @width: 50%;
      #wrap {
        color: @color;
        width: @width;
      }
    
      /* 生成后的 CSS */
      #wrap {
        color: #999;
        width: 50%;
      }

1.2 选择器变量:让选择器变成动态

      /* Less */
      @mySelector: #wrap;
      @Wrap: wrap;
      @{mySelector}{ //变量名 必须使用大括号包裹
        color: #999;
        width: 50%;
      }
      .@{Wrap}{
        color:#ccc;
      }
      #@{Wrap}{
        color:#666;
      }
    
      /* 生成的 CSS */
      #wrap{
        color: #999;
        width: 50%;
      }
      .wrap{
        color:#ccc;
      }
      #wrap{
        color:#666;
      }

1.3 属性变量:减少代码书写

/* Less */
      @borderStyle: border-style;
      @Soild:solid;
      #wrap{
        @{borderStyle}: @Soild;//变量名 必须使用大括号包裹
      }
    
      /* 生成的 CSS */
      #wrap{
        border-style:solid;
      }

1.4 url 变量:项目结构改变时,修改其变量即可

      /* Less */
      @images: "../img";//需要加引号
      body {
        background: url("@{images}/dog.png");//变量名 必须使用大括号包裹
      }
    
      /* 生成的 CSS */
      body {
        background: url("../img/dog.png");
      }

1.5 声明变量:类似混合方法

      - 结构: @name: { 属性: 值 ;};
      - 使用:@name();
      /* Less */
      @background: {background:red;};
      #main{
          @background();
      }
      @Rules:{
          width: 200px;
          height: 200px;
          border: solid 1px red;
      };
      #con{
        @Rules();
      }
    
      /* 生成的 CSS */
      #main{
        background:red;
      }
      #con{
        width: 200px;
        height: 200px;
        border: solid 1px red;
      }

1.6 变量运算

  - 加减法时 以第一个数据的单位为基准
  - 乘除法时 注意单位一定要统一
      /* Less */
      @width:300px;
      @color:#222;
      #wrap{
        width:@width-20;
        height:@width-20*5;
        margin:(@width-20)*5;
        color:@color*2;
        background-color:@color + #111;
      }
    
      /* 生成的 CSS */
      #wrap{
        width:280px;
        height:200px;
        margin:1400px;
        color:#444;
        background-color:#333;
      }

1.7 变量的作用域,就近原则

      /* Less */
      @var: @a;
      @a: 100%;
      #wrap {
        width: @var;
        @a: 9%;
      }
    
      /* 生成的 CSS */
      #wrap {
        width: 9%;
      }

1.8 用变量去定义变量

      /* Less */
      @fnord:  "I am fnord.";
      @var:    "fnord";
      #wrap::after{
        content: @@var; //将@var替换为其值 content:@fnord;
      }
      /* 生成的 CSS */
      #wrap::after{
        content: "I am fnord.";
      }

未完待续。。。

  • 必须在服务器下运行,意思是直接打开你的html文件,用文件名路径的话会报错的,可以利用webstrom IDE或者sublime server插件

2 类的使用

.hengguoguo{
    width:20px;
    height:20px;
    background:red;
}

div{
    .hengguoguo;
}

2.1 传参

//.hengguoguo(@w:50px){ //默认参数
.hengguoguo(@w){
    width:@w;
    height:20px;
    background:red;
}

div{
    // .hengguoguo();
    .hengguoguo(300px);
}

3 嵌套

.box1{
     //&代表自己
     &:hover{}
     &>.box2{} 
     .box2{
         with:100px;
     }
}

你可能感兴趣的:(Less核心手册)