Sass - 擴充套件指令



描述

@extend 指令用於共享選擇器之間的規則和關係。它可以將所有其他類樣式擴充套件到一個類中,也可以應用其自身的特定樣式。以下是擴充套件的型別:

型別和描述 語法 編譯後的程式碼

擴充套件複雜選擇器

它可以擴充套件僅包含單個元素或類選擇器的選擇器。

h2 {
   font-size: 40px;
}

.container{
   @extend h2
}
h2, .container {
   font-size: 40px;
}

多個擴充套件

單個選擇器可以擴充套件多個選擇器。

.style {
   font-size: 25px;
   font-style: italic;
}

h2 {
   color: #61C8E1;
}

.container {
   @extend .style;
   @extend h2
}
.style, .container {
   font-size: 25px;
   font-style: italic;
}

h2, .container {
   color: #61C8E1;
}

鏈式擴充套件

第一個選擇器被第二個選擇器擴充套件,第二個選擇器被第三個選擇器擴充套件,因此這被稱為鏈式擴充套件。

.style {
   font-size: 25px;
   font-style: italic;
}

h2 {
   color: #61C8E1;
   @extend .style
}

.container {
   @extend h2
}
.style, h2, .container {
   font-size: 25px;
   font-style: italic;
}

h2, .container {
   color: #61C8E1;
}

選擇器序列

巢狀選擇器本身可以使用@extend

合併選擇器序列

它合併兩個序列,即一個序列擴充套件另一個序列,該序列存在於另一個序列中。

.style {
   font-size: 25px;
   font-style: italic;
   color: #61C8E1;
}

h2 .container {
   @extend .style
}
.container .style a {
   font-weight: bold;
}

#id .example {
   @extend a;
}
.style, h2 .container {
   font-size: 25px;
   font-style: italic;
   color: #61C8E1;
}
.container .style a, .container .style #id
.example, #id .container .style .example {
   font-weight: bold;
}

@extend - 僅選擇器

百分號字元 (%) 可用於任何 id 或類的位置,它可以防止其自身的規則集被渲染到 CSS 中。

.style a%extreme {
   font-size: 25px;
   font-style: italic;
   color: #61C8E1;
}

.container {
   @extend %extreme;
}
.style a.container {
   font-size: 25px;
   font-style: italic;
   color: #61C8E1;
}

!optional 標誌

!optional 標誌用於允許 @extend 不建立任何新的選擇器。

h2.important {
   @extend .style !optional;
}
A blank compile page gets display.

@extend 在指令中

如果在 @media 中使用 @extend,則它只能擴充套件存在於相同指令塊中的選擇器。

@media print {
   .style {
      font-size: 25px;
      font-style: italic;
   }
   
   .container {
      @extend .style;
      color: #61C8E1;
   }
}
@media print {
   .style, .container {
      font-size: 25px;
      font-style: italic;
   }

   .container {
      color: #61C8E1;
   }
}

示例

以下示例演示了在 SCSS 檔案中使用 @extend

extend.htm

<!doctype html>
   <head>
      <title>Extend Example</title>
      <link rel = "stylesheet" href = "extend.css" type = "text/css" />
   </head>

   <body class = "container">
      <h2>Example using Extend</h2>
      <p class = "style">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
   </body>
</html>

接下來,建立檔案 extend.scss

extend.scss

.style{
   font-size: 30px;
   font-style: italic;
}

h2{
   color: #787878;
   @extend .style

}

.container{
   @extend h2
}

可以使用以下命令告訴 Sass 監視檔案並在 Sass 檔案更改時更新 CSS:

sass --watch C:\ruby\lib\sass\extend.scss:extend.css

接下來,執行上述命令;它將自動建立 extend.css 檔案,其中包含以下程式碼:

extend.css

.style, h2, .container {
   font-size: 30px;
   font-style: italic;
}

h2, .container {
   color: #787878;
}

輸出

讓我們執行以下步驟來檢視上述程式碼的工作方式:

  • 將上述 html 程式碼儲存在 **extend.html** 檔案中。

  • 在瀏覽器中開啟此 HTML 檔案,將顯示如下所示的輸出。

Sass rules and directives
sass_rules_and_directives.htm
廣告
© . All rights reserved.