常见的css预处理器

84 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

在平时开发过程中,css编写效率不高,于是就有了css预处理器的诞生。CSS 预处理器是一个能让你通过预处理器自己独有的语法来生成的程序。目前主要有三种流行的css预处理器,会增加一些原生 CSS 不具备的特性,例如代码混合,嵌套选择器,继承选择器等。这些特性让 CSS 的结构更加具有可读性且易于维护。

3种常见的css预处理器

变量定义方面的不同:

  1. less

    @color:red;
    
  2. sass

    $color:red;
    
  3. stylues:声明变量没有任何限定,结尾的分号可有可无,但变量名和变量值之间必须要有等号。

作用域方面的不同

css 预编译器把变量赋予作用域,也就是存在生命周期。就像 js 一样,它会先从局部作用域查找变量,依次向上级作用域查找。

  • Sass:不存在全局变量的概念。
  • Less:跟 JS 一样,逐级查找,向上冒泡。
  • Stylus:完全等同 Less。Stylus 和 Sass 则更倾向于指令式。

本文就选择其中的less作为主要入口进行总结记录。

less的执行过程

  1. 编写符合less语法less文件

less语法是完全兼容css语法,在less文件中,可以直接写css语法。

  1. 使用工具 将 less文件 编译成 css文件

在vsCode中拓展工具中搜索less,搜索到Easy LESS选择安装即可。

image.png

  1. 在网页当中 引用 编译好的 css文件

image.png

语法

变量

  1. 声明变量

@bgColor:blue;

@font:25px;

  1. 使用变量
background-color: @bgColor;
font-size: @font;
.main{
  background-color: @bgColor;
  font-size: @font;
}
footer{
  background-color: @bgColor;
  font-size: @font; 
}

嵌套

div {
  background-color: red;
  /* 在less的嵌套中,要写带有冒号的选择器的时候 都要在冒号前面
加一个 “&”
 */
  &:before {
    content: "呵呵";
  }
  > p {
    background-color: palevioletred;
    a {
      background-color: black;
      span {
        background-color: yellow;
      }
    }
  }
  > .red_cls {
    background-color: red;
  }
}