Sass @extend และการสืบทอด

Sass @extend 指令

คำสั่ง @extend 指令允許您將一群 CSS 屬性從一個選擇器共享到另一個選擇器。

如果您有幾乎相同樣式的元素,但僅在一些小細節上有所不同,則 คำสั่ง @extend 指令很有用。

下面的 Sass 实例首先為按鈕創建一個基本樣式(此樣式將用於大多數按鈕)。然後,我們為 "Report" 按鈕創建一種樣式,為 "Submit" 按鈕創建一種樣式。"Report" 和 "Submit" 按鈕都通過 คำสั่ง @extend 指令繼承了 .button-basic 類的所有 CSS 屬性。此外,它們還定義了自己的顏色:

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:

.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">Report this</button> คุณแค่ต้องกำหนด .button-report ก็ได้รับสไตล์สองกลุ่ม

คำสั่ง @extend คำสั่งเพื่อที่จะทำให้โค้ด Sass ของคุณแห้งมากขึ้น (DRY)