為了不要使 CSS 太過龐大,遇到相同樣式時,都會將其合併起來,但這會遇到一個問題,如果開發到後面程式碼太多,遇到相同樣式要合併時又得拉到前面找出來合併
1 2 3 4 5 6
   |  .header h1, .content h1, .footer h1 {...} 
  .content h1 {...}
  .footer h1 {...}
 
  | 
 
@extend 基本運用
透過 @extend 可以將其他的 class 拉進來合併延伸使用
1 2 3 4 5 6 7 8 9 10
   |  .box1 {color: red} .box2 {   width: 100px;   @extend .box1; }
 
  .box1, .box2 {color: red} .box2 {width: 100px}
 
  | 
 
須注意合併樣式的先後順序,以下情況 .box2 的 border-color 樣式就會被覆蓋
1 2 3 4 5 6 7 8 9 10
   |  .box2 {   @extend .box1 ;   border-color: blue; } .box1 {border: 1px solid red}
  /* in css */ .box2 {border-color: blue;} .box1, .box2 {border: 1px solid red}
 
  | 
 
% 專門被呼叫的樣式
可以用 % 建立一個樣式,只有使用 @extend 呼叫時才會作用,本身並不會被 Sass 編譯成 CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
   |  %all-h1 {color: red} .header {   width: 100px;   @extend %all-h1 }; .footer {   width: 200px;   @extend %all-h1 };
 
  .header, .footer {color: red}; .header {width: 100px}; .footer {width: 200px}
 
  | 
 
@extend 與 @mixin 的差異