• Sass


    Sass

    Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(变量(variables)、嵌套(nested rules)、 混合(mixins)、 函数(functions)等功能),更容易阅读。

    Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此Sass语法进行了改良,Sass 3就变成了Scss(Sassy CSS)。SCSS(Sassy CSS)是CSS语法的扩展。这意味着每一个有效的CSS也是一个有效的SCSS语句,与原来的语法兼容,只是用{}取代了原来的缩进。

    Sass是在服务端处理的,以前是Ruby,现在是Dart-Sass或Node-Sass。

    Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。

    安装sass

    node.js中使用如下命令安装sass。

    npm install -g sass
    

    变量

    SCSS

    $myColor: red;   //全局作用域
    
    h1 {
      $myColor: green;   //只在 h1 里头有用,局部作用域,要想声明为全局作用域 可以使用!global
      color: $myColor;
    }
    
    p {
      color: $myColor;
    }
    

    编译后的CSS

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

    嵌套规则与属性

    scss

    nav {
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
      }
    
      li { display: inline-block; }
    
      a {
        display: block;
        padding: 6px 12px;
        text-decoration: none;
      }
    }
    

    编译后的css

    nav ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    nav li {
      display: inline-block;
    }
    nav a {
      display: block;
      padding: 6px 12px;
      text-decoration: none;
    }
    

    多个嵌套

    .alert, .warning {
      ul, p {
        margin-right: 0;
        margin-left: 0;
        padding-bottom: 0;
      }
    }
    

    编译后的css

    .alert ul, .alert p, .warning ul, .warning p {
      margin-right: 0;
      margin-left: 0;
      padding-bottom: 0;
    }
    

    嵌套属性

    font: {
      family: Helvetica, sans-serif;
      size: 18px;
      weight: bold;
    }
    
    text: {
      align: center;
      transform: lowercase;
      overflow: hidden;
    }
    

    编译后的css

    font-family: Helvetica, sans-serif;
    font-size: 18px;
    font-weight: bold;
    
    text-align: center;
    text-transform: lowercase;
    text-overflow: hidden;
    

    @import

    Sass导入文件类似 CSS,Sass 支持 @import 指令。
    @import 指令可以让我们导入其他文件等内容。
    CSS @import 指令在每次调用时,都会创建一个额外的 HTTP 请求。但,Sass @import 指令将文件包含在 CSS 中,不需要额外的 HTTP 请求。
    Sass @import 指令语法如下:

    @import filename;    //不带后缀
    

    Sass Partials

    不希望将一个 Sass 的代码文件编译到一个 CSS 文件,可以在文件名的开头添加一个下划线。这将告诉 Sass 不要将其编译到 CSS 文件。
    但是,在导入语句中我们不需要添加下划线。
    _colors.scss

    //_colors.scss  以_开头
    $myPink: #EE82EE;
    $myBlue: #4169E1;
    $myGreen: #8FBC8F;
    

    使用_color.scss

    @import "colors";   //引入时不需要带_
    
    body {
      font-family: Helvetica, sans-serif;
      font-size: 18px;
      color: $myBlue;
    }
    

    混入@mixin @include

    @mixin 指令定义一个可以在整个样式表中重复使用的样式。
    @include 指令可以将混入(mixin)引入到文档中。
    定义混入

    @mixin important-text {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
    }
    

    使用混入

    .danger {
      @include important-text;
      background-color: green;
    }
    

    编译后css

    .danger {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
      background-color: green;
    }
    

    混入中包含混入

    混入中也可以包含混入

    @mixin special-text {
      @include important-text;
      @include link;
      @include special-border;
    }
    

    向混入传递变量

    /* 混入接收两个参数 */
    @mixin bordered($color, $width) {
      border: $width solid $color;
    }
    
    .myArticle {
      @include bordered(blue, 1px);  // 调用混入,并传递两个参数
    }
    
    .myNotes {
      @include bordered(red, 2px); // 调用混入,并传递两个参数
    }
    

    编译后的css

    .myArticle {
      border: 1px solid blue;
    }
    
    .myNotes {
      border: 2px solid red;
    }
    

    继承@extend

    @extend 指令告诉 Sass 一个选择器的样式从另一选择器继承。
    如果一个样式与另外一个样式几乎相同,只有少量的区别,则使用 @extend 就显得很有用。

    .button-basic  {
      border: none;
      padding: 15px 30px;
      text-align: center;
      font-size: 16px;
      cursor: pointer;
    }
    
    .button-report  {
      @extend .button-basic;
      background-color: red;
    }
    
    .button-submit  {
      @extend .button-basic;
      background-color: green;
      color: white;
    }
    

    编译后的css

    .button-basic, .button-report, .button-submit {
      border: none;
      padding: 15px 30px;
      text-align: center;
      font-size: 16px;
      cursor: pointer;
    }
    
    .button-report  {
      background-color: red;
    }
    
    .button-submit  {
      background-color: green;
      color: white;
    }
    
    如果这篇文章对你有用,麻烦关注一下本人微信公众号,关注送福利哦~
    微信公众号二维码
    不定期安利各种插件,编程技巧,编程思想,欢迎交流~
  • 相关阅读:
    PHPStorm 支持 Element UI 语法提示
    npm
    谷歌浏览器插件
    RBAC
    git 知识点
    Laradock ppa加速
    vscode插件
    临时解决执行 Composer Install 返回 Killed 的问题
    单例设计模式(3种实现方式)
    log4j.properties 详解与配置步骤
  • 原文地址:https://www.cnblogs.com/aeolian/p/15014325.html
Copyright © 2020-2023  润新知