less命名空间,作用域,引入,important关键字

一:概念

1. 命名空间:将一些需要的混合组合在一起,可以通过嵌套多层id和class来实现
2.作用域:首先会在局部查找变量和混合,如果没找到,编译器会在父作用域中查找,以此类推
3.引入(importing):你可以引入一个或者多个less文件,这些文件中的所有变量都可以在当前的less项目中使用

二:基本操作

1. 命名空间

  • 命名空间:和css后代选择器类似
  • 直白的说,就是将一个选择集其中的一部分拿出来,只采用这一部分数据操作
  • 小例子
    less文件
#bgcolor(){ // 加()默认不输出
    background: #ffffff;
    .a{
        color: #888888;
        &:hover{
            color: green;
        }
        .b{
            background: red;
        }
    }
}
.bgcolor1{
    background: yellow;
    #bgcolor>.a;    // >符号表示选中混合中的每一个样式
}
.bgcolor2{
    // #bgcolor>.a>.b;
    #bgcolor .a .b;  // 省略写法:将>换成空格即可
}

编译后的css文件

.bgcolor1 {
  background: yellow;
  color: #888888;
}
.bgcolor1:hover {
  color: green;
}
.bgcolor1 .b {
  background: red;
}
.bgcolor2 {
  background: red;
}

2. 作用域

  • 见 (http://www.jianshu.com/p/4a37a5da23cf )定义多个相同的变量部分

3. 引入

  • 引入方式:@import "main.less"; 必须有;结尾,最好写上后缀名
  • 注意:应用.css文件会被原样输出到编译的文件中,所以无法对其进行加工,无法运用里面的样式
  • 可以带参数:
    1. 默认是once,一次
    2. import (reference) "mian.less"; 这样引用的那个文件编译后的css文件只会采用计算后的变量值,原样的css样式不会输出
    3. inline 原样输出到css文件中,不能在less文件中取变量等操作
    4. less 将文件作为less对象,而不管事什么文件扩展名
    5. css 将文件作为css对象,而不管是什么文件扩展名
    6. multiple 允许引入多次文件名相同的文件,和once对立
  • 小例子
@import "main.css";  // 原样输出,无法用里面的变量等
@import "main.less"; //可以用里面的变量
@import (reference) "main"; // 引用less文件,但不输出原本的内
@import (inline) "main.less";// 必须添加后缀名,否则报错,引用less文件,但不能操作
@import (once) "main.less"; // 原样输出,且进行加工,只能使用一次
@import (less) "main.css";  // 将css文件作为less文件使用,原样输出,并加工一次
@import (css) "main.less";  // 将less文件作为css文件使用,只能原样输出,并不能操作
@import (multiple) "main.less"; // 引用几次就输出几次
@import (multiple) "main.less";     
@import (multiple) "main.less";     

你可能感兴趣的:(less命名空间,作用域,引入,important关键字)