全域樣式
CSS 模組 (CSS Modules) 適用於元件層級的樣式。但如果您希望某些 CSS 能被每個頁面載入,Next.js 也支援這種需求。
要為應用程式載入全域 CSS,請建立一個名為 pages/_app.js
的檔案,內容如下:
_app.js
的預設導出是一個頂層 React 元件,它包裹了應用程式中的所有頁面。您可以使用此元件在頁面導航時保持狀態,或像我們在這裡所做的一樣添加全域樣式。了解更多關於 _app.js
檔案。
重新啟動開發伺服器
重要事項: 當您新增 pages/_app.js
時,需要重新啟動開發伺服器。按 Ctrl + c 停止伺服器並執行:
添加全域 CSS
在 Next.js 中,您可以透過從 pages/_app.js
導入來添加全域 CSS 檔案。您不能在其他任何地方導入全域 CSS。
全域 CSS 無法在 pages/_app.js
之外導入的原因是全域 CSS 會影響頁面上的所有元素。
如果您從首頁導航到 /posts/first-post
頁面,首頁的全域樣式會無意中影響 /posts/first-post
。
您可以將全域 CSS 檔案放在任何位置並使用任何名稱。讓我們按照以下步驟操作:
- 建立一個頂層的
styles
目錄和一個global.css
檔案。 - 在
styles/global.css
中添加以下 CSS 代碼。此代碼重置了一些樣式並更改了a
標籤的顏色:
最後,在您之前建立的 pages/_app.js
檔案中導入 CSS 檔案:
現在,如果您訪問 http://localhost:3000/posts/first-post,您會看到樣式已應用。在 _app.js
中導入的任何樣式都將全域應用於應用程式的所有頁面。
如果沒有生效:請確保在更新
pages/_app.js
後重新啟動開發伺服器。