SASS @import 函式有什麼作用?


SASS 是一種 CSS 預處理器,它使 CSS 程式碼保持簡潔,因為它不允許程式碼重複。SASS 中有各種指令,其中之一是 @import 指令。

“@import”指令用於將一個“.scss”或“.sass”檔案的程式碼匯入另一個檔案,並在編譯期間執行它。我們可以使用“@import”指令將變數、函式、mixin 等從一個檔案匯入另一個檔案。

語法

使用者可以按照以下語法在 SASS 中使用“@import”指令匯入檔案。

@import 'test'

我們在上面的語法中匯入了“test.scss”或“test.sass”檔案。這裡,我們不需要在匯入程式碼時指定副檔名,因為編譯器會自動檢測它。

如果使用者想在一個檔案中匯入多個 CSS 檔案,則應使用以下語法。

@import 'file1', 'file2', 'file3', 'file4', ...

現在,讓我們透過示例瞭解如何使用 @import 指令匯入檔案。

示例 1

在下面的示例中,我們在“font.scss”檔案中添加了一些變數。之後,我們使用“@import”指令將“fonts.scss”檔案的內容匯入“styles.scss”檔案。

在“style.scss”檔案中,我們使用了“font.scss”檔案的變數。之後,我們編譯了“styles.scss”檔案的程式碼,使用者可以在輸出影像中看到“style.css”檔案的更新程式碼。

檔名 - Style.scss

@import "fonts";
$height: 5rem;
$border: 2px, solid, blue;
div {
   height: $height;
   border: $border;
   border-radius: 1rem;
}
h1 {
   font-size: $heading-font-size;
   font-weight: $heading-font-weight;
   color: $heading-font-color;
   font-family: $heading-font-family;
}
p {
   font-size: $paragraph-font-size;
   font-weight: 200;
}

檔名 - Fonts.scss

$normal-font-size: 1rem;
$paragraph-font-size: 1.2rem;
$heading-font-size: 1.5rem;
$heading-font-weight: 700;
$heading-font-color: #000;
$heading-font-family: "Roboto", sans-serif;

輸出

示例 2

在下面的示例中,我們在“color.scss”檔案中添加了與顏色相關的變數,在“fonts.scss”檔案中添加了與字型相關的變數。在“style.scss”檔案中,我們使用“@import”指令一起匯入了“fonts.scss”和“colors.scss”檔案。

在“style.scss”檔案中,我們使用了顏色和字型的變數。在輸出中,使用者可以看到我們使用了變數的特定 CSS 屬性的值。

檔名 - Style.scss

@import "fonts", "colors";
div {
   color: $text-color;
   background-color: $background-color;
}
ul {
   li {
      color: $text-color;
      background-color: $background-color;
      font-size: $normal-font-size;
   }
}
h1 {
   color: $primary-color;
   font-size: $heading-font-size;
   font-weight: $heading-font-weight;
   font-family: $heading-font-family;
}

檔名 - Colors.scss

$text-color: #000;
$background-color: #fff;
$primary-color: #000;
$secondary-color: #fff;
$tertiary-color: #000;

檔名 - Fonts.scss

$normal-font-size: 1rem;
$paragraph-font-size: 1.2rem;
$heading-font-size: 1.5rem;
$heading-font-weight: 700;
$heading-font-family: "Roboto", sans-serif;

輸出

使用 @import 指令的優點

使用“@import”指令有一些好處,我們在下面解釋。

  • 我們可以將一個檔案的 CSS 程式碼匯入另一個檔案。

  • 我們可以為程式碼的每個元件建立一個單獨的 CSS 檔案,並在需要時匯入它。

使用 @import 指令的缺點

使用“@import”指令有一些缺點,我們在下面解釋。

  • 它使 CSS 檔案的所有內容(例如變數、函式、mixin 等)都可全域性訪問。因此,開發人員很難判斷特定變數是在哪裡定義的。

  • 由於每個匯入檔案的所有內容都成為全域性的,因此每個檔案都應具有不同的變數名以避免衝突。

  • SASS 編譯器會編譯每個 scss 檔案(無論是否匯入),這會增加編譯時間並降低程式碼效率。

SASS 中的部分檔案

為了解決上述缺點,我們可以使用 SASS 中的部分檔案。我們可以透過以下劃線開標頭檔案名來建立部分 scss 檔案。例如,“_test.scss”、“_colors.scss”等。

每當我們使用部分檔案時,SASS 轉換器都不會編譯部分檔案的程式碼,這會提高程式碼效率。但是,我們可以將部分 scss 檔案的內容匯入主 scss 檔案。

這是一個使用部分 scss 檔案的示例。

示例 3

在下面的示例中,我們建立了“_colors.scss”部分檔案,並將其匯入“style.scss”檔案。在這個示例中,由於我們使用了部分檔案,程式碼的編譯效率更高。

但是,無論我們是否使用部分檔案,程式碼輸出都保持不變。

檔名 - Style.scss

@import "colors";
img {
   width: 100%;
   height: 100%;
   background-color: $background-color;
}
p {
   color: $text-color;
}

檔名 - _Color.scss

$text-color: #000;
$background-color: #fff;
$primary-color: #000;
$secondary-color: #fff;
$tertiary-color: #000;

輸出

使用者學習瞭如何使用“@import”指令將一個檔案的程式碼匯入另一個檔案。這有助於我們將 SCSS 程式碼分解成更小的塊並避免重複。但是,使用 @import 指令有一些缺點,但我們可以使用部分檔案來解決這個問題。

更新於:2023年4月21日

2000+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告