a. 優點
b. 缺點
c. 例子
%base-button {
padding: 10px 20px;
font-size: 16px;
border-radius: 5px;
}
.button-primary {
@extend %base-button; // 繼承 %base-button 的所有樣式
background-color: blue;
color: white;
}
.button-secondary {
@extend %base-button; // 繼承 %base-button 的所有樣式
background-color: gray;
color: black;
}
a. 例子
@for $i from 1 through 3 {
.item-#{$i} {
width: 100px * $i; // 每個類別的寬度都會隨著 i 的增加而改變
height: 50px;
}
}
使用 @extend 與循環結構生成多個類別
%base-card {
border-radius: 5px;
padding: 20px;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
}
@for $i from 1 through 4 {
.card-#{$i} {
@extend %base-card; // 繼承基礎卡片樣式
background-color: lighten(blue, $i * 10%); // 動態調整背景顏色的亮度
}
}
@for $i from 1 through 4 { ... }:使用 @for 循環來生成四個卡片類別
@extend %base-card;:讓這四個卡片類別繼承 %base-card 的樣式
編譯後的CSS
.card-1, .card-2, .card-3, .card-4 {
border-radius: 5px;
padding: 20px;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
}
.card-1 {
background-color: lighten(blue, 10%);
}
.card-2 {
background-color: lighten(blue, 20%);
}
.card-3 {
background-color: lighten(blue, 30%);
}
.card-4 {
background-color: lighten(blue, 40%);
}