Created With

linkSASS 混合 Mixin

有些程式語言可以建立函式、設定參數與預設值,之後要用的時候再呼叫、視情況改變參數的設定值。用中文撰寫偽代碼如下:

1link建立函式 函式名稱() {

2link 運算結果 = 一些運算;

3link}

4link建立函式 函式名稱(宣告變數 參數=預設值) {

5link 運算結果 = 應用參數的一些運算;

6link}

7link

8link呼叫函式();

9link呼叫函式(參數的設定值);

@mixin 語法可以把一堆 CSS 設定放在一起並命名,之後利用 @include 語法和名字就能重複使用 CSS 設定,還可以傳入變數和預設值,類似前述的函式。如果參數的設定值有依序排列的話可以不寫參數名稱。用中文撰寫偽代碼如下:

1link@mixin 混合名稱() {

2link 一些 CSS 設定;

3link}

4link@mixin 混合名稱($變數名稱, $變數名稱: 預設值) {

5link 應用變數的一些 CSS 設定;

6link}

7link

8link選擇器 {

9link @include 混合名稱;

10link}

11link選擇器 {

12link @include 混合名稱(設定值, $變數名稱: 設定值);

13link}

@mixin 加上參數還可以加上預設值、@include 決定要修改哪些參數還有各參數要用什麼設定值,概念上來說就很像是物件導向程式設計 (Object Oriented Programming) 的多載 (Overload)。編譯之後 @include 的位置會被換成 @mixin 的內容。

舉例如下:

1link@mixin title {

2link font-size: 36px;

3link font-weight: 700;

4link}

5link@mixin text($font-weight, $color: black) {

6link font-size: 18px;

7link font-weight: $font-weight;

8link color: $color;

9link

10link.title {

11link @include title;

12link}

13link.text {

14link @include text(300);

15link}

16link.text-bold {

17link @include text(700, $color: darkGray);

18link}

1link.title {

2link font-size: 36px;

3link font-weight: 700;

4link}

5link.text {

6link font-size: 18px;

7link font-weight: 300;

8link color: black;

9link}

10link.text-bold {

11link font-size: 18px;

12link font-weight: 700;

13link color: darkGray;

14link}

在 @mixin 的下層寫上 @content, 在 @include 的下層寫一些 CSS 設定,編譯之後 @include 的位置會被換成 @mixin 的內容,@content 的位置會被換成 @include 下層的 CSS 設定。

舉例如下:

1link@mixin mobile {

2link @media (max-width: 767px) {

3link @content;

4link }

5link}

6link

7link.header {

8link @include mobile {

9link height: 60px;

10link }

11link}

1link@media (max-width: 767px) {

2link .header {

3link height: 60px;

4link }

5link}

link常見錯誤 Common Mistakes

撰寫 SASS 或 SCSS 時可以注意是否有以下的錯誤:

SASS 混合 Mixin常見錯誤 Common Mistakes

技術筆記

準備chevron_right
HTMLchevron_right
CSS 基礎chevron_right
JS 基礎chevron_right
Git & GitHubchevron_right
CSS 進階chevron_right
Node.jschevron_right

返回個人網站