[Sass]擴展/繼承

繼承對於了解CSS 的同學來說一點都不陌生,先來看一張圖:

圖中代碼顯示“.col-sub .block li,.col-extra .block li” 繼承了“.item-list ul li”選擇器的“padding : 0;” 和“ul li” 選擇器中的“ list-style : none outside none;”以及* 選擇器中的“box-sizing:inherit;”。

在Sass中也具有繼承一說,也是繼承類中的樣式代碼塊。在Sass中是通過關鍵詞“@extend”來繼承已存在的類樣式塊,從而實現代碼的繼承。如下所示:

//SCSS

//SCSS
.btn {
  border: 1px solid #ccc;
  padding: 6px 10px;
  font-size: 14px;
}

.btn-primary {
  background-color: #f36;
  color: #fff;
  @extend .btn;
}

.btn-second {
  background-color: orange;
  color: #fff;
  @extend .btn;
}

編譯出來之後:

//CSS
.btn, .btn-primary, .btn-second {
  border: 1px solid #ccc;
  padding: 6px 10px;
  font-size: 14px;
}

.btn-primary {
  background-color: #f36;
  color: #fff;
}

.btn-second {
  background-clor: orange;
  color: #fff;
}

從示例代碼可以看出,在Sass 中的繼承,可以繼承類樣式塊中所有樣式代碼,而且編譯出來的CSS 會將選擇器合併在一起,形成組合選擇器:

.btn, .btn-primary, .btn-second {
  border: 1px solid #ccc;
  padding: 6px 10px;
  font-size: 14px;
}

results matching ""

    No results matching ""