目錄
文法
範例1(@extend指令的基本使用)
輸出
範例 2(使用 @extend 指令的繼承鏈)
範例 3(使用 @extend 指令的多重繼承)
範例 4(在 @media 指令內使用 @extend 指令)
範例 5(佔位符選擇器)
首頁 web前端 css教學 SASS 中的 @extend 指令是什麼?

SASS 中的 @extend 指令是什麼?

Aug 27, 2023 pm 01:17 PM

SASS 中的 @extend 指令是什么?

SASS 允許開發人員編寫更具可讀性的程式碼並以更好的方式對其進行操作。它包含多個指令,例如@media、@content、@include、@mixin、@extend等,提供了一些功能,以便開發人員可以編寫比普通CSS更好的程式碼。

在本教程中,我們將了解 SASS 中的 @directive。 @extend 指令可讓開發人員擴展 CSS 程式碼。然而,mixin 也擴展了 CSS 程式碼並避免重複。 @extend 指令也允許我們避免程式碼的重複。

例如,如果應用程式的字體有一個通用的 CSS,並且每個地方都需要不同的字體大小,則可以擴展字體樣式並添加自訂字體大小。這樣就不需要寫重複的程式碼了。

此外,開發人員可以使用@extend指令在CSS中實現繼承,我們將透過範例來學習。

文法

使用者可以依照下列語法在 SASS 中使用 @extend 指令。

selector {
   /* CSS code */
}
Another_CSS_selector {
   @extend selector;
   /* CSS code */
}
登入後複製

在上面的語法中,我們可以在「選擇器」的宣告區塊中編寫常見的CSS。之後,我們可以在“Another_CSS_Selector”內部擴展選擇器並添加自己的程式碼。

範例1(@extend指令的基本使用)

在下面的範例中,我們為具有「card」類別名稱的 HTML 元素定義了一些樣式。之後,我們為「small_card」和「large_Card」元素定義了 CSS。我們在兩個選擇器中使用了 @extend 指令來擴展「card」選擇器的 CSS。此外,我們還在「small_card」和「large_card」選擇器中包含了一些其他 CSS,例如寬度、高度等。

.card {
   background-color: aliceblue;
   color: green;
   border: 2px solid pink;
   border-radius: 1.4rem;
}
.small_card {
   @extend .card;
   width: 100px;
   height: 100px;
   margin: 5px;
   padding: 5px;
}
.large_card {
   @extend .card;
   width: 500px;
   height: 500px;
   margin: 10px;
   padding: 10px;
}
登入後複製

輸出

在下面的輸出中,我們可以觀察到「card」選擇器的樣式套用到「small_card」和「large_card」選擇器。額外的 CSS 也分別應用於兩個選擇器。

.card,
.small_card,
.large_card {
   background-color: aliceblue;
   color: green;
   border: 2px solid pink;
   border-radius: 1.4rem;
}
.small_card {
   width: 100px;
   height: 100px;
   margin: 5px;
   padding: 5px;
}
.large_card {
   width: 500px;
   height: 500px;
   margin: 10px;
   padding: 10px;
}
登入後複製

範例 2(使用 @extend 指令的繼承鏈)

在下面的範例中,我們示範如何使用 @extend 指令建立繼承鏈。在這裡,我們在“.first”選擇器中添加了一些 CSS。之後,我們在“.second”選擇器中擴展了“.first”選擇器,並添加了一些額外的 CSS。

接下來,我們在「.third」選擇器中擴充了「.second」選擇器,在「.fourth」選擇器中擴充了「.third」選擇器。因此,這裡我們使用不同的 CSS 選擇器建立了繼承鏈。

.first {
   width: 100px;
   height: auto;
}
.second {
   @extend .first;
   color: blue;
}
.third {
   @extend .second;
   background-color: pink;
   border: 2px dotted red;
}
.fourth {
   @extend .third;
   margin: 10px;
   padding: 1rem;
}
登入後複製

輸出

下面的輸出顯示了當我們使用 @extend 指令建立繼承鏈時,CSS 程式碼如何應用於不同的 CSS 選擇器。

.first,
.second,
.third,
.fourth {
   width: 100px;
   height: auto;
}
.second,
.third,
.fourth {
   color: blue;
}
.third,
.fourth {
   background-color: pink;
   border: 2px dotted red;
}
.fourth {
   margin: 10px;
   padding: 1rem;
}
登入後複製

範例 3(使用 @extend 指令的多重繼承)

在這個範例中,我們示範如何使用 @extend 指令來使用多重繼承。多重繼承的含義是單一選擇器擴展了多個選擇器。

在這裡,我們定義了「.container」和「.main」CSS選擇器並添加了一些CSS。之後,在“.element”CSS選擇器內,我們擴充了“.container”和“.main”選擇器。

.container {
   width: 500px;
   height: 500px;
   background-color: beige;
}
.main{
   color: pink;
   float: left;
   max-width: 600px;
   max-height: 700px;
   overflow: auto;
}
.element {
   @extend .main;
   @extend .container;
   padding: 2%;
}
登入後複製

輸出

.container,
.element {
   width: 500px;
   height: 500px;
   background-color: beige;
}
.main,
.element {
   color: pink;
   float: left;
   max-width: 600px;
   max-height: 700px;
   overflow: auto;
}
.element {
   padding: 2%;
}
登入後複製

範例 4(在 @media 指令內使用 @extend 指令)

在下面的範例中,我們在 @media 指令中使用了 @extend 指令。但是,每當我們擴展 CSS 選擇器時,SASS 編譯器都會出錯,該選擇器是在 @media 指令的選擇器內的 @media 指令之外定義的。

在這裡,我們在@media指令中使用「.button」CSS選擇器擴充了「.small_button」CSS選擇器。使用者可以觀察到這裡兩個選擇器都位於 @media 指令內。

@media small_screen {
   .button {
      width: 50%;
      clear: both;
      font-size: 1.3rem;
   }
   .small_button {
      @extend .button;
      @extend .main;
      height: 25%;
   }
}
登入後複製

輸出

@media small_screen {
   .button,
   .small_button {
      width: 50%;
      clear: both;
      font-size: 1.3rem;
   }
   .small_button {
      height: 25%;
   }
}
登入後複製

範例 5(佔位符選擇器)

顧名思義,我們可以透過在選擇器名稱前面加上 (%) 符號來建立佔位符選擇器。當我們編譯SASS程式碼時,佔位符選擇器不會出現在輸出程式碼中,但它的樣式會在擴充的地方新增。

例如,我們在這裡定義了「%container」佔位符選擇器。之後,我們在「small_container」和「medium_container」內部擴充了容器選擇器。

在輸出中,我們可以觀察到它不包含“container”選擇器,但“small_container”和“large_container”包含“container”佔位符代碼。

%container {
   color: red;
   background-color: green;
   padding: 3%;
   margin: 0 auto;
}
.small_container {
   @extend %container;
   width: 100px;
   height: 100px;
}
.medium_container {
   @extend %container;
   width: 300px;
   height: 300px;
}
登入後複製

輸出

.small_container,
.medium_container {
   color: red;
   background-color: green;
   padding: 3%;
   margin: 0 auto;
}
.small_container {
   width: 100px;
   height: 100px;
}
.medium_container {
   width: 300px;
   height: 300px;
}
登入後複製

使用者在本教學中學習如何使用@extend指令。基本上,我們可以使用它來擴展樣式表並避免程式碼的重複。另外,我們可以使用@extend指令在CSS中建立繼承鏈。

以上是SASS 中的 @extend 指令是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

當您看上去時,CSS梯度變得更好 當您看上去時,CSS梯度變得更好 Apr 11, 2025 am 09:16 AM

我關注的一件事是Lea Verou' s conic-Gradient()Polyfill的功能列表是最後一項:

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

See all articles