CSS预处理器 LESS

2020-01-02  本文已影响0人  李霖弢

使用

less代码可以在js中直接被编译,常见的使用less方法包括以下四种

  1. 命令行编译
npm install -g less
lessc <less文件名> [<输出css文件名>]
  1. IDE插件
    VSCode中安装Easy LESS插件,每当保存.less文件时自动生成同名css
  2. 在node中引入less模块并编译,或其他第三方编译方式
  3. 在浏览器中直接引用
<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="less.js" type="text/javascript"></script>

注释

支持行注释和块注释

导入(Importing)

多个less文件单独编译,因此variables/mixins/namespaces不能互相调用
通过@import可以在一个less中导入外部less(可省略后缀)或css,以使用其各种内容

@import "library"; // library.less
@import "typo.css";

功能

变量

通过@声明或使用变量

@width: 10px;
@height: @width + 10px;
.header {
  width: @width;
  height: @height;
}
混合(Mixins)

混合器(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。
混合器可以具有参数,也可以用:为参数指定默认值
调用混合时如果有多个混合器,则自动编译参数符合数量的混合器(多个符合则均编译)

.red(@color,@font:50px) {
  color:@color;
  li {
    font-size:@font;
  }
}
#big {
  font-size:100px;
}
body {
  opacity: 0.5;
  .red(red);
  #big();
}
嵌套(Nesting)和命名空间 (Namespaces)
.bundle() {
  .grey{
    background-color: grey;
  }
}
.demo a {
  .bundle.grey();
}
.demo b {
 .bundle > .grey();
}
映射(Maps)

与命名空间不同,映射用于处理单个值,通过[]调用

#color(){
  b:blue;
}
body{
  background-color: #color[b];
}
四则运算

计算时如果单位换算无效或失去意义,则以左侧单位为准。
通常仅对LESS变量做运算并配合calc使用。

转义(Escaping)

带有~" "的内容被引用时会把" "去掉
配合@{ }可以引用选择器字符串

@min768: ~"(min-width: 768px)";
@header: ~"&:header";
.element {
  @media @min768 {
    font-size: 1.2rem;
  }
  @{header}{
    content:"hello world"
  }
}
函数(Functions)

主要用于判断、数组、字符串、运算、颜色处理

上一篇 下一篇

猜你喜欢

热点阅读