Sass學習

1.1下載地址:css

  http://rubyinstaller.org/downloadshtml

2.1 安裝sass

SASS是Ruby語言寫的,可是二者的語法沒有關係。不懂Ruby,照樣使用。只是必須先安裝Ruby,而後再安裝SASS。ruby

假定你已經安裝好了Ruby,接着在命令行輸入下面的命令:app

  gem install sasside

而後,就能夠使用了。網站

2.2 使用url

SASS文件就是普通的文本文件,裏面能夠直接使用CSS語法。文件後綴名是.scss,意思爲Sassy CSS。spa

下面的命令,能夠在屏幕上顯示.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、基本用法

 變量

SASS容許使用變量,全部變量以$開頭。

Sass源代碼:

$blue:#1875e7;
div{
  color:$blue;
  }
  
  $side:left;
  /*asassdf*/
  .rounded{
    .round{
      border-#{$side}-radius:5px;
    }
    
  }
  
  /*計算能力*/
  $var:2;
  body{
    margin: (14px/2);
    top:50px + 100px;
    right:$var * 20%;
  }
  
  /*嵌套*/
  div h1{
    color:red;
  }
  
  /*也能夠寫成這樣*/
  /*屬性的嵌套必需要在屬性後成加上冒號*/
  p{
    border:{
      color:red;
      
    }
  }
  /*關於註釋:
    又斜槓是在css文件中是不顯示的;
    C++方式註釋的方法會留在CSS文件中;
  */
  
  /*繼承*/
  .class1{
    margin:0 auto;
    border:1px solid #000;
  }
  .class2{
    @extend .class1;
    font-size:120%;
  }


/*Mixin 宏的使用*/
@mixin left{  //定義mixin宏
  float:left;
  margin-left:10px;
}

div{
  @include left;  //@include 用於引用minxin宏;
  
}

/*帶參數的minxin宏*/
@mixin left($value:20px){
  float:left;
  margin-right:$value;
}
  
//使用帶參數的mixin宏;
div{
  @include left(40px);
  
}
  
  
/*Sass高級語法*/
//@if 語句的使用;
p{
  @if 1 + 1 == 2{
    border:1px solid #000;
  }
  
  @if 3 < 2{
    border:2px solid #fff;
    
  }
}
//@else 語句的使用;
/*
@function linghtness($value){
  @return $value;
}
$color:20%;
@if linghtness($color) > 30%{
  background-color:#000;
}@else{
  background-color:#fff;
}*/

//for 語句的使用;
 @for $i from 1 to 5  {
   .itme-#{$i} {width:100px; height:100px; }
 }
 
 //while語句
 
 $i:6;
 
 @while $i > 0 {
   .itme-#{$i} {width: 2em * $i;}
   $i:$i - 2;
   
 }
 
 //each命令
 @each $member in a, b, c, d, f{
 
 .#{$member}{
    background-image:url("../images/#{$member}.jpg");
 }
 }

對應生成的CSS文件:

@charset "UTF-8";
div {
  color: #1875e7;
}

/*asassdf*/
.rounded .round {
  border-left-radius: 5px;
}

/*計算能力*/
body {
  margin: 7px;
  top: 150px;
  right: 40%;
}

/*嵌套*/
div h1 {
  color: red;
}

/*也能夠寫成這樣*/
/*屬性的嵌套必需要在屬性後成加上冒號*/
p {
  border-color: red;
}

/*關於註釋:
  又斜槓是在css文件中是不顯示的;
  C++方式註釋的方法會留在CSS文件中;
*/
/*繼承*/
.class1, .class2 {
  margin: 0 auto;
  border: 1px solid #000;
}

.class2 {
  font-size: 120%;
}

/*Mixin 宏的使用*/
div {
  float: left;
  margin-left: 10px;
}

/*帶參數的minxin宏*/
div {
  float: left;
  margin-right: 40px;
}

/*Sass高級語法*/
p {
  border: 1px solid #000;
}

/*
@function linghtness($value){
  @return $value;
}
$color:20%;
@if linghtness($color) > 30%{
  background-color:#000;
}@else{
  background-color:#fff;
}*/
.itme-1 {
  width: 100px;
  height: 100px;
}

.itme-2 {
  width: 100px;
  height: 100px;
}

.itme-3 {
  width: 100px;
  height: 100px;
}

.itme-4 {
  width: 100px;
  height: 100px;
}

.itme-6 {
  width: 12em;
}

.itme-4 {
  width: 8em;
}

.itme-2 {
  width: 4em;
}

.a {
  background-image: url("../images/a.jpg");
}

.b {
  background-image: url("../images/b.jpg");
}

.c {
  background-image: url("../images/c.jpg");
}

.d {
  background-image: url("../images/d.jpg");
}

.f {
  background-image: url("../images/f.jpg");
}
相關文章
相關標籤/搜索