學習Sass @mixin 與 @include
導讀 | Sass (英文全稱:Syntactically Awesome Stylesheets) 是一個最初由 Hampton Catlin 設計並由 Natalie Weizenbaum 開發的層疊樣式表語言。 |
@mixin 指令允許我們定義一個可以在整個樣式表中重複使用的樣式。
@include 指令可以將混入(mixin)引入到文件中。
混入(mixin)透過 @mixin 指令來定義。 @mixin name { property: value; property: value; ... }
以下例項建立一個名為 "important-text" 的混入:
Sass 程式碼:
@mixin important-text { color: red; font-size: 25px; font-weight: bold; border: 1px solid blue; }
注意:Sass 的連線符號 - 與下劃線符號 _ 是相同的,也就是 @mixin important-text { } 與 @mixin important_text { } 是一樣的混入。
@include 指令可用於包含一混入:
Sass @include 混入語法:
selector { @include mixin-name; }
因此,包含 important-text 混入程式碼如下:
例項
.danger { @include important-text; background-color: green; }
將以上程式碼轉換為 CSS 程式碼,如下所示:
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); // 呼叫混入,並傳遞兩個引數 }
以上例項的混入引數為設定邊框的屬性 (color 和 width) 。
將以上程式碼轉換為 CSS 程式碼,如下所示:
Css 程式碼:
.myArticle { border: 1px solid blue; } .myNotes { border: 2px solid red; }
混入的引數也可以定義預設值,語法格式如下:
例項
@mixin bordered($color: blue, $width: 1px) { border: $width solid $color; }
在包含混入時,你只需要傳遞需要的變數名及其值:
例項
@mixin sexy-border($color, $width: 1in) { border: { color: $color; width: $width; style: dashed; } } p { @include sexy-border(blue); } h1 { @include sexy-border(blue, 2in); }
將以上程式碼轉換為 CSS 程式碼,如下所示:
Css 程式碼:
p { border-color: blue; border-width: 1in; border-style: dashed; } h1 { border-color: blue; border-width: 2in; border-style: dashed; }
有時,不能確定一個混入(mixin)或者一個函式(function)使用多少個引數,這時我們就可以使用 ... 來設定可變引數。
例如,用於建立盒子陰影(box-shadow)的一個混入(mixin)可以採取任何數量的 box-shadow 作為引數。
例項
@mixin box-shadow($shadows...) { -moz-box-shadow: $shadows; -webkit-box-shadow: $shadows; box-shadow: $shadows; } .shadows { @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999); }
將以上程式碼轉換為 CSS 程式碼,如下所示:
Css 程式碼:
.shadows { -moz-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999; -webkit-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999; box-shadow: 0px 4px 5px #666, 2px 6px 10px #999; }
瀏覽器字首使用混入
瀏覽器字首使用混入也是非常方便的,如下例項:
例項
@mixin transform($property) { -webkit-transform: $property; -ms-transform: $property; transform: $property; } .myBox { @include transform(rotate(20deg)); }
將以上程式碼轉換為 CSS 程式碼,如下所示:
Css 程式碼:
.myBox { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2738940/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sass的mixin,extend,placeholder,functionFunction
- 使用 SASS Mixin 編寫 clean code
- sass學習
- sass學習篇
- 學習Sass 巢狀規則與屬性巢狀
- 學習一下Sass @extend 與 繼承繼承
- 學習如何安裝Sass
- include與require、require_once與include_once的區別UI
- 從bootstrap原始碼中學習Sass(一)boot原始碼
- vue.js3 學習筆記 (一)——mixin 混入Vue.jsS3筆記
- LESS與SASS的區別
- 前端學習之路之自適應設計(sass語法)前端
- Vue原始碼學習(七):合併生命週期(混入Vue.Mixin)Vue原始碼
- SCSS @mixinCSS
- vue中sass與SCSS的區別VueCSS
- include "head_file" 和 include <head_file>
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- Vue Mixin混入Vue
- #include的作用
- Datapump:EXCLUDE/INCLUDE
- #include <> ““區別
- SCSS @mixin傳參CSS
- Python Mixin解釋Python
- what is the Mixin method in Python?Python
- Make sure to include VueLoaderPluginVuePlugin
- #include stdio.h(A)
- BUUCTF-Include(Web)Web
- php中 include,require,include_once,require_once 的區別PHPUI
- [譯]Flutter - Dart的MixinFlutterDart
- Vue中mixin的理解Vue
- 理解 Dart mixin 機制Dart
- sass簡介
- sass安裝
- 學習BFC與IFC
- #include stdio.h(B)
- PHP 與 Swoole 淺析與學習PHP
- react1.6版本新增sass與less的支援React
- webpack+vue+sass專案中,sass提取全域性引用WebVue