SCSS 簡介
變數與嵌套
變數
$primary-color: #333;
$font-stack: Helvetica, sans-serif;
body {
    color: $primary-color;
    font-family: $font-stack;
}
- 定義了兩個變數 
$primary-color和$font-stack。 - 在 
body選擇器中使用這些變數。 
Nesting
nav {
    ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    li { display: inline-block; }
    a {
        display: block;
        padding: 6px 12px;
        text-decoration: none;
    }
}
nav元素中的ul,li, 和a選擇器被嵌套在內部。
混合(Mixins)
SCSS 中的「混合(Mixins)」是一種重要的功能,它允許你創建可重用的代碼塊,可以在多處引入而不需要重複寫相同的代碼。這不僅使得代碼更簡潔、更易於維護,也提高了開發效率。
基本概念
- 定義混合:使用 
@mixin指令來定義一個混合。混合可以包含一個或多個 CSS 規則。 - 引用混合:使用 
@include指令來在需要的地方引用這些混合。 
基本用法
定義混合
@mixin text-style {
    font-weight: bold;
    color: red;
    font-size: 18px;
}
text-style 的混合,它包含了三條 CSS 規則。
引用混合
p {
    @include text-style;
}
p)選擇器中使用 @include 引入 text-style 混合。這將會把混合中定義的所有規則應用到這個段落上。
帶參數的混合
混合也可以接受參數,這使得它們更加靈活和強大。
定義帶參數的混合
@mixin border-radius($radius) {
    -webkit-border-radius: $radius;
    -moz-border-radius: $radius;
    border-radius: $radius;
}
border-radius 接受一個參數 $radius,並將其應用於 CSS 的圓角屬性。
引用帶參數的混合
.box {
    @include border-radius(10px);
}
.box 類別使用了 border-radius 混合,並傳入了 10px 作為參數。
使用混合的好處
- 代碼重用:避免了在不同地方重複相同的 CSS 規則,減少了代碼重複。
 - 易於維護:如果需要更改樣式,只需修改混合的定義,所有引用這個混合的地方都會自動更新。
 - 提高可讀性:使得代碼更加清晰和易於理解。
 
總的來說,混合是 SCSS 提供的一個強大工具,可以大大提高 CSS 的靈活性和可維護性。
繼承
.message {
    border: 1px solid #ccc;
    padding: 10px;
    color: #333;
}
.success-message {
    @extend .message;
    border-color: green;
}
.success-message通過@extend繼承了.message的樣式,並添加了新的邊框顏色。
函數與條件
函數
@function calculate-grid-width($columns: 12) {
    @return 100% / $columns;
}
.column { width: calculate-grid-width(4); }
calculate-grid-width 函數來計算網格列的寬度。
- 在 .column 類中使用這個函數。
條件語句
@mixin theme($light-theme: true) {
    @if $light-theme {
        background: #fff;
        color: #000;
    } @else {
        background: #000;
        color: #fff;
    }
}
body { @include theme(false); }
- 通過條件語句,根據 
$light-theme變量的值來決定背景和文字顏色。 
實戰練習
- 創建一個包含變數的樣式表:使用 SCSS 變數來定義顏色、字體等樣式。
 - 利用混合和繼承實現重用樣式:建立一些通用的界面元素樣式,如按鈕、消息框等。
 - 使用函數和條件語句創建動態樣式:根據不同條件改變元素的樣式。
 
參考資料: - Sass Basics