zoukankan      html  css  js  c++  java
  • Sass使用教程

    sass官网:

    http://sass-lang.com/

    http://sass-lang.com/documentation/file.SASS_REFERENCE.html

    Sass和Scss的关系

    There are two syntaxes available for Sass. The first, known as SCSS (Sassy CSS) and used throughout this reference, is an extension of the syntax of CSS3. This means that every valid CSS3 stylesheet is a valid SCSS file with the same meaning. In addition, SCSS understands most CSS hacks and vendor-specific syntax, such as IE’s old filter syntax. This syntax is enhanced with the Sass features described below. Files using this syntax have the .scss extension.

    The second and older syntax, known as the indented syntax (or sometimes just “Sass”), provides a more concise way of writing CSS. It uses indentation rather than brackets to indicate nesting of selectors, and newlines rather than semicolons to separate properties. Some people find this to be easier to read and quicker to write than SCSS. The indented syntax has all the same features, although some of them have slightly different syntax; this is described in the indented syntax reference. Files using this syntax have the .sass extension.

    Either syntax can import files written in the other. Files can be automatically converted from one syntax to the other using the sass-convertcommand line tool:

    # Convert Sass to SCSS
    $ sass-convert style.sass style.scss
    
    # Convert SCSS to Sass
    $ sass-convert style.scss style.sass

    Sass 有两种语法规则(syntaxes),目前新的语法规则(从 Sass 3开始)被称为 “SCSS”( 时髦的css(Sassy CSS)),它是css3语法的的拓展级,就是说每一个语法正确的CSS3文件也是合法的SCSS文件,SCSS文件使用.scss作为拓展名。
    第二种语法别成为缩进语法(或者 Sass),它受到了 Haml的简洁精炼的启发,它是为了人们可以用和css相近的但是更精简的方式来书写css而诞生的。它没有括号,分号,它使用 行缩进 的方式来指定 css 块,虽然sass不是最原始的语法,但是缩进语法将继续被支持,在缩进语法的文件以 .sass 为拓展名。

    首先,让我们获得Sass并搭配环境.如果你使用 OS X,那么你已经安装了Ruby. Windows 用户可以通过Windows安装程序来安装, Linux可以通过包管理(apt-get)来安装.

    当Ruby安装好后,你可以安装 Sass 了,运行:

    gem install sass

    就安装成功了。

    下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)

      sass test.scss

    如果要将显示结果保存成文件,后面再跟一个.css文件名。

      sass test.scss test.css

    SASS提供四个编译风格的选项:

      * nested:嵌套缩进的css代码,它是默认值。

      * expanded:没有缩进的、扩展的css代码。(用这个比较好看)

      * compact:简洁格式的css代码。

      * compressed:压缩后的css代码。

    生产环境当中,一般使用最后一个选项。

      sass --style compressed test.sass test.css

    你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。

      // watch a file

      sass --watch input.scss:output.css

      // watch a directory

      sass --watch app/sass:public/stylesheets

    SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。

     

    三、基本用法

    3.1 变量

    SASS允许使用变量,所有变量以$开头。

      $blue : #1875e7; 

      div {
       color : $blue;
      }

    如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。

      $side : left;

      .rounded {
        border-#{$side}-radius: 5px;
      }

    3.2 计算功能

    SASS允许在代码中使用算式:

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

    3.3 嵌套

    SASS允许选择器嵌套。比如,下面的CSS代码:

      div h1 {
        color : red;
      }

    可以写成:

      div {
        hi {
          color:red;
        }
      }

    属性也可以嵌套,比如border-color属性,可以写成:

      p {
        border: {
          color: red;
        }
      }

    注意,border后面必须加上冒号。

    在嵌套的代码块内,可以使用$引用父元素。比如a:hover伪类,可以写成:

      a {
        &:hover { color: #ffb3ff; }
      }

    3.4 注释

    SASS共有两种注释风格。

    标准的CSS注释 /* comment */ ,会保留到编译后的文件。 

    单行注释 // comment,只保留在SASS源文件中,编译后被省略。

    在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。

      /*! 
        重要注释!
      */

    四、代码的重用

    4.1 继承

    SASS允许一个选择器,继承另一个选择器。比如,现有class1:

      .class1 {
        border: 1px solid #ddd;
      }

    class2要继承class1,就要使用@extend命令:

      .class2 {
        @extend .class1;
        font-size:120%;
      }

    (结果为:

    .class1, .class2 {
    border: 1px solid #ddd; }

    .class2 {
    font-size: 120%; }

    4.2 Mixin

    Mixin有点像C语言的宏(macro),是可以重用的代码块。

    使用@mixin命令,定义一个代码块。

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

    使用@include命令,调用这个mixin。

      div {
        @include left;
      }

    mixin的强大之处,在于可以指定参数和缺省值。

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

    使用的时候,根据需要加入参数:

      div {
        @include left(20px);
      }

    下面是一个mixin的实例,用来生成浏览器前缀。

      @mixin rounded($vert, $horz, $radius: 10px) {
        border-#{$vert}-#{$horz}-radius: $radius;
        -moz-border-radius-#{$vert}#{$horz}: $radius;
        -webkit-border-#{$vert}-#{$horz}-radius: $radius;
      }

    使用的时候,可以像下面这样调用:

      #navbar li { @include rounded(top, left); }

      #footer { @include rounded(top, left, 5px); }

    4.3 颜色函数

    SASS提供了一些内置的颜色函数,以便生成系列颜色。

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

    4.4 插入文件

    @import命令,用来插入外部文件。

      @import "path/filename.scss";

    如果插入的是.css文件,则等同于css的import命令。

      @import "foo.css";

    五、高级用法

    5.1 条件语句

    @if可以用来判断:

      p {
        @if 1 + 1 == 2 { border: 1px solid; }
        @if 5 < 3 { border: 2px dotted; }
      }

    配套的还有@else命令:

      @if lightness($color) > 30% {
        background-color: #000;
      } @else {
        background-color: #fff;
      }

    5.2 循环语句

    SASS支持for循环:

      @for $i from 1 to 10 {
        .border-#{$i} {
          border: #{$i}px solid blue;
        }
      }

    也支持while循环:

      $i: 6;

      @while $i > 0 {
        .item-#{$i} { 2em * $i; }
        $i: $i - 2;
      }

    each命令,作用与for类似:

      @each $member in a, b, c, d {
        .#{$member} {
          background-image: url("/image/#{$member}.jpg");
        }
      }

    5.3 自定义函数

    SASS允许用户编写自己的函数。

      @function double($n) {
        @return $n * 2;
      }

      #sidebar {
         double(5px);
      }

    (完)

    转自:http://www.ruanyifeng.com/blog/2012/06/sass.html

    更多:

    http://ruby-china.org/topics/4396

    http://blog.meituo.net/2011/03/27/sass-%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D/

    http://sass-lang.com/guide

    Compass用法指南



  • 相关阅读:
    burpsuite 不能抓取其他虚拟机环回地址
    Widows搭建sqli-labs
    Mysql内置函数
    MySQL用户创建于授权
    SQL注入
    XSS/CSRF/SSRF/XXE
    Cookie与Session的区别
    HACKTHEBOX邀请码
    kali安装jdk
    java -D
  • 原文地址:https://www.cnblogs.com/youxin/p/3379456.html
Copyright © 2011-2022 走看看