Sass

头像
t1ree
    阅读 2 分钟

    Sass

    Sass用法指南 - 阮一峰

    官方文档

    安装

    1. 安装ruby

    2. gem install sass

    编译选项

    // 编译格式
    sass --watch input.scss:output.css --style compact
    // 添加调试map
    sass --watch input.scss:output.css --sourcemap
    // 开启debug信息
    sass --watch input.scss:output.css --debug-info

    变量

    $blue : #1875e7;
    div {
      color : $blue;
    }
    
    $side : left;
    .rounded {
      border-#{side}-radius: 5px;
    }

    计算

    body {
      margin: (14px/2);
      top: 50px + 100px;
      right: $var * 10%;
    }

    嵌套

    div h1 {
      color: red;
    }
    div {
      h1 {
        color: red;
      }
    }
    p {
      border: {
        color: red;
      }
    }
    a {
      &:hover { color: #ffb3ff; }
    }
    /* 使用&引用父元素 */

    注释

    • /* comment */

    • // comment

    /*!
        important comments!
    */

    继承

    .class1 {
      border: 1px slid #ddd;
    }
    .class2 {
      @extend .class1;
      font-size: 120%;
    }

    Mixin

    可重用代码块。

    @mixin left {
      float: left;
      margin-left: 10px;
    }
    div {
      @include left;
    }

    指定参数和缺省值:

    @mixin left($value: 10px) {
      float: left;
      margin-right: $value;
    }
    div {
      @include left(20px);
    }

    example:

    @mixin rounded($vert, $horz, $radius: 10px) {
      border-#{$vert}-#{$horz}-radius: $radius;
      -moz-border-#{$vert}-#{$horz}-radius: $radius;
      -webkit-border-#{$vert}-#{$horz}-radius: $radius;
    }
    #navbar li { @include rounded(top, left); }
    #footer { @include rounded(top, left, 5px) }

    颜色函数

    lighten(#cc3, 10%) // #d6d65c
    darken(#cc3, 10%) // #a3a329
    grayscale(#cc3) // #808080
    complement(#cc3) // #33c

    插入文件

    @import "path/filename.scss";
    @import "foo.css";

    条件语句

    p {
      @if 1 + 1 == 2 { border: 1px solid; }
      @if 5 < 3 { border: 2px dotted; }
    }
    @if lightness($color) > 30% {
      background-color: #000;
    } @else {
      background-color: #fff;
    }

    循环语句

    @for $i from 1 to 10 {
      .border-#{$i} {
        border: #{$i}px solid blue;
      }
    }
    $i: 6;
    @while $i > 0 {
      .item-#{$i} { width: 2em * $i; }
      $i: $i - 2;
    }
    @each $member in a, b, c, d {
      .#{$member} {
        background-image: url("/image/#{$member}.jpg");
      }
    }

    自定义函数

    #function double($n) {
      @return $n * 2;
    }
    
    #sidebar {
      width: double(5px);
    }

    t1ree
    150 声望0 粉丝

    老铁们扣波666