Sass @extend 和繼承
Sass @extend 指令
@extend
指令允許您將一組 CSS 屬性從一個選擇器共享到另一個選擇器。
如果您有幾乎相同樣式的元素,它們只在一些小細節上有所不同,那麼 @extend
指令就非常有用。
以下 Sass 示例首先為按鈕建立了一個基本樣式(該樣式將用於大多數按鈕)。然後,我們為“報告”按鈕建立一個樣式,為“提交”按鈕建立另一個樣式。透過 @extend
指令,“報告”和“提交”按鈕都繼承了 .button-basic 類的所有 CSS 屬性。此外,它們還定義了自己的顏色。
SCSS Syntax(SCSS 語法)
.button-basic {
border: none;
padding: 15px 30px;
text-align: center;
font-size: 16px;
cursor: pointer;
}
.button-report {
@extend .button-basic;
background-color: red;
}
.button-submit {
@extend .button-basic;
background-color: green;
color: white;
}
編譯後,CSS 將如下所示:
CSS Output(CSS 輸出)
.button-basic, .button-report, .button-submit {
border: none;
padding: 15px 30px;
text-align: center;
font-size: 16px;
cursor: pointer;
}
.button-report {
background-color: red;
}
.button-submit {
background-color: green;
color: white;
}
透過使用 @extend
指令,您無需在 HTML 程式碼中為一個元素指定多個類,例如:<button class="button-basic button-report">報告此事</button>。您只需指定 .button-report 即可獲得兩組樣式。
@extend
指令有助於保持您的 Sass 程式碼非常 DRY(Don't Repeat Yourself,不要重複自己)。