Sass——@-Rules 與指令

來源:互聯網
上載者:User

Sass 支援所有的 CSS3 @-Rules,以及 Sass 特有的 “指令”(directives)

CSS3 @-Rules    @import——css中通過@import匯入css檔案時,將增加http請求次數,scss中執行該指令將匯入其他scss檔案再編譯在同一個css檔案,這樣不會增加http請求的次數,如果在scss檔案中用@import匯入css檔案效果跟在css檔案中匯入一樣,他們並不會編譯成一個css檔案
@import "reset.css";@import "file.scss";p {  background: #0982C1;}/*編譯成css*/@import "reset.css";body {                    //body 是從reset.css檔案中匯入的  background: #EEE;}p {  background: #0982C1;}
    @media
    @extend 

——將一個選取器的樣式繼承到另一個選取器上

.common{font-size:12px;color:#eee;}p{@extend .common;//繼承.common 所有樣式margin:20px;}a{@extend .common;margin:10px;}/*編譯為css*/.common, p, a {font-size: 12px;  color: #eee; }p {  margin: 20px; }a {  margin: 10px; }
Sass 特有的 “指令”(directives)    控制指令 (Control Directives)

——主要與混合指令 (mixin) 配合使用,尤其是在 Compass 等樣式庫中

        @if       
 @if 可單獨使用也可跟@else if 和@ else 一起使用
$num:5;div{@if $num == 1{z-index:$num;}@else if $num == 2{z-index:2;}@else{z-index:5;}}/*編譯為css*/div {  z-index: 5; }
        @forsass中的@for迴圈語句要配合”from“和”through“一起使用——@for $var form X through Y {語句塊} //當X==Y時,沒有輸出任何樣式,不起作用
@for $i from 2 through 3 {.item-#{$i} { z-index:$i;}}/*轉換為css*/.item-2 {  z-index: 2; }.item-3 {  z-index: 3; }
        @each與in一起使用——@each $var in <list> {語句塊}
@each $i in 1, 2, 3, 4{.item-#{$i}{z-index:$i;}}/*編譯為css*/.item-1 {  z-index: 1; }.item-2 {  z-index: 2; }.item-3 {  z-index: 3; }.item-4 {  z-index: 4; }
        @while
$i:1;@while $i <= 3{.item-#{$i}{z-index:$i;}$i:$i+1;}/*編譯為css*/.item-1 {  z-index: 1; }.item-2 {  z-index: 2; }.item-3 {  z-index: 3; }

    混合指令 (Mixin Directives)

——用於定義可重複使用的樣式,Mixins可以將一部分共有的樣式抽出,作為單獨定義的模組,被很多選取器重複使用。混合指令可以包含所有的 CSS 規則,絕大部分 Sass 規則,甚至通過參數功能引入變數,輸出多樣化的樣式,參數可以帶預設值。通過mixin定義的混合指令,要通過@include指令引用樣式。

        @mixin 定義混合指令——這裡不帶預設值的參數要在mixin參數列表中先申明,帶預設值的要後申明,否則將出錯。        @include 引用混合樣式
@mixin btnStyle($color,$width:60px,$height:30px){width:$width;height:$height;line-height:$height;text-align:center;color:$color;}li {@include btnStyle(#eee,50px);}/*編譯為css*/li {  width: 50px;  height: 30px;  line-height: 30px;  text-align: center;  color: #eeeeee; }

        參數 (Arguments)        向混合樣式中匯入內容 (Passing Content Blocks to a Mixin)函數指令 (Function Directives)

——Sass 允許自訂函數作用於任何值或者字串,例如:

$grid-width: 40px;
$gutter-width: 10px;

@function grid-width($n) {
@return $n * $grid-width + ($n - 1) * $gutter-width;
}

#sidebar { width: grid-width(5); }
結果:
#sidebar {
width: 240px; }
輸出樣式 (Output Style)

——Sass 支援多種輸出樣式,滿足不同的需求。通過 :style 選項設定輸出樣式,或者在命令列中使用 --style 命令。

 :nested
 :expanded
 :compact
 :compressed

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.