Sass @extend 與 繼承
@extend 指令告訴 Sass 一個選擇器的樣式從另一選擇器繼承。
如果一個樣式與另外一個樣式幾乎相同,只有少量的區別,則使用 @extend 就顯得很有用。
以下 Sass 實例中,我們創建了一個基本的按鈕樣式 .button-basic,接著我們定義了兩個按鈕樣式 .button-report 與 .button-submit,它們都繼承了 .button-basic ,它們主要區別在於背景顏色與字體顏色,其他的樣式都是一樣的。
Sass 代碼:
.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;
}
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 代碼:
.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;
}
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 按鈕標籤中就不需要指定多個類 class="button-basic button-report" ,只需要設置 class="button-report" 類就好了。
@extend 很好的體現了代碼的複用。