CSS预处理器Sass -- Sass、Less、Stylus比较(2)

前言:本节主要学习下Sass、Less、Stylus在使用方面的异同。

1.环境安装配置区别。

  <1>Sass环境配置?

    Sass的底层是Ruby语言开发的,安装Sass前提需要先安装Ruby,安装过程参考 https://www.cnblogs.com/diweikang/p/9609825.html

       <2>Less环境配置?

    浏览器端用法:

      <1>、引入Less文件 <link rel="stylesheet/less" type="text/css" href="styles.less" />

      <2>、使用JS文件编译,执行<script src="less.js" type="text/javascript"></script>,会将styles.less编译为styles.css文件。

    node安装:运行命令 npm install -g less,然后使用require('less')引入项目中使用。

    参考Less官网:http://lesscss.cn/

  <3>Stylus的安装?

    前提先安装node,命令行运行npm install -g stylus,然后使用require('stylus')引入项目中使用。

2.写法格式异同。

  <1>Sass的写法格式

      缩进格式:旧版本写法,无需大括号和分号结尾。

h1 
    color: red
    a
        color: green

      兼容CSS的写法:大括号包含,同时必须分号结尾

h1 {
    color: red;
    a {
        color: green;
    }
}

       <2>Less的写法格式

    Less同样是兼容CSS的写法,同Sass的第二种写法。

h1 {
    color: red;
    a {
        color: green;
    }
}

  <3>Stylus写法格式

    Stylus的写法更灵活:

    缩进格式:

h1 
    color: red
    a
        color: green

    兼容CSS格式:

h1 {
    color: red;
    a {
        color: green;
    }
}

    怪异写法:

h1
    color red
    a
        color green
 

  注意:三种写法可以混用。

3.变量声明异同

  <1>Sass的变量声明?

    Sass变量声明是以$符号开头的。

$colorRed: red;
$colorGreen: green;
h1 {
    color: $colorRed;
    a {
        color: $colorGreen;
    }
}

       <2>Less的变量声明

    Less变量声明是以@符号开头的。

@colorRed: red;
@colorGreen: green;
h1 {
    color: @colorRed;
    a {
        color: @colorGreen;
    }
}

  <3>Stylus变量声明

    Stylus变量声明可以以任意字符开头,没有过多的限制。

$colorRed: red;   //可以以$符号开头
colorGreen: green;  //可以直接写
h1 {
    color: $colorRed;
    a {
        color: colorGreen;
    }
}

4.混入的异同

  <1>Sass的混入

    @开头,其中的参数便令使用$符号开头。

    @mixin alert($color: red) {
        color: $color;
    }

       <2>Less的混入

    .开头,其中的参数便令使用@符号开头。

    .alert(@color: red) {
        color: @color;
    }

  <3>Stylus混入

   直接是函数名,参数就是正常的函数命名形式。

    alert(colorArg: red) {
        color: colorArg;
    }

5.继承的异同

  <1>Sass的继承

    使用@extend实现元素之间样式的继承。

    .block {
        margin: 10px;
        padding: 5px;
    }
    p {
        @extend .block;
        color: red;
    }

       <2>Less的继承

    less中继承无需使用@extend,直接嵌套其他元素的样式。

    .block {
        margin: 10px;
        padding: 5px;
    }
    p {
        .block;
        color: red;
    }

  <3>Stylus继承

    stylus实现继承方式和sass一样,都是使用@extend实现。

    .block {
        margin: 10px;
        padding: 5px;
    }
    p {
        @extend .block;
        color: red;
    }

总结:这节学习Sass、less、stylus之间的基本区别,主要是书写格式、变量定义、混入、继承之间的区别,其他更多的区别需要更多的学习。

注意:变量、混合、嵌套、继承、颜色函数称为CSS预处理器的五大特性。

原文地址:https://www.cnblogs.com/diweikang/p/9611307.html