CSS 模組
Next.js 內建支援使用 .module.css
副檔名的 CSS 模組。
CSS 模組透過自動建立唯一的類別名稱來實現 CSS 的本地作用域。這讓您可以在不同檔案中使用相同的類別名稱,而不用擔心衝突。這種特性使 CSS 模組成為包含元件級 CSS 的理想方式。
範例
CSS 模組可以導入到 app
目錄下的任何檔案中:
CSS 模組是一個_可選功能_,且僅對副檔名為 .module.css
的檔案啟用。
常規的 <link>
樣式表和全域 CSS 檔案仍然支援。
在生產環境中,所有 CSS 模組檔案將自動合併為多個經過最小化和程式碼分割的 .css
檔案。
這些 .css
檔案代表您應用程式中的熱門執行路徑,確保為您的應用程式載入最少的 CSS 以完成繪製。
全域樣式
全域樣式可以導入到 app
目錄下的任何佈局、頁面或元件中。
須知:這與
pages
目錄不同,在pages
目錄中,您只能在_app.js
檔案中導入全域樣式。
例如,考慮一個名為 app/global.css
的樣式表:
在根佈局 (app/layout.js
) 中,導入 global.css
樣式表以將樣式應用到應用程式的每個路由:
外部樣式表
外部套件發布的樣式表可以導入到 app
目錄中的任何位置,包括並置的元件:
須知:外部樣式表必須直接從 npm 套件導入或下載並與您的程式碼庫並置。您不能使用
<link rel="stylesheet" />
。
附加功能
Next.js 包含附加功能來改善添加樣式的撰寫體驗:
- 在本地使用
next dev
運行時,本地樣式表(全域或 CSS 模組)將利用快速刷新 (Fast Refresh),在保存編輯時立即反映變更。 - 在使用
next build
為生產環境構建時,CSS 檔案將被合併為更少的經過最小化的.css
檔案,以減少獲取樣式所需的網路請求數量。 - 如果您禁用 JavaScript,在生產構建 (
next start
) 中仍會載入樣式。然而,next dev
仍需要 JavaScript 來啟用快速刷新 (Fast Refresh)。