在 CSS 中,@import
用於匯入外部樣式表,但它有一些缺點,因此通常不建議使用,尤其是在效能最佳化方面。主要原因如下:
-
效能問題:
@import
會導致額外的 HTTP 請求,從而增加頁面載入時間。瀏覽器必須先下載並解析主 CSS 檔案,然後才能解析@import
匯入的樣式表。這會導致樣式表載入的延遲,並可能導致頁面渲染出現問題,例如“文件樣式短暫失效”(FOUC,Flash of Unstyled Content),即頁面先顯示無樣式的內容,然後樣式才載入完成。相比之下,使用<link>
標籤可以並行下載 CSS 檔案,從而提高頁面載入速度。 -
複雜性: 使用多個
@import
規則會建立複雜的依賴關係,難以維護和除錯。巢狀的@import
更是如此。跟蹤樣式的來源和覆蓋順序會變得困難。 -
瀏覽器相容性問題(較老版本): 雖然現在主流瀏覽器都支援
@import
,但一些非常老的瀏覽器版本可能存在相容性問題。 -
無法控制載入順序: 使用
@import
匯入的樣式表會在主樣式表載入 之後 才載入。這可能會導致樣式覆蓋的問題,並且難以控制樣式的優先順序。 -
媒體查詢的限制: 在
@import
中使用媒體查詢會受到一些限制,不如在<link>
標籤中使用靈活。
最佳實踐:使用 <link>
標籤
推薦使用 <link>
標籤來連結外部樣式表。例如:
<link rel="stylesheet" href="style.css">
<link>
標籤具有以下優勢:
- 並行下載: 瀏覽器可以並行下載
<link>
標籤引用的 CSS 檔案,從而加快頁面載入速度。 - 易於管理: 使用
<link>
標籤可以清晰地看到樣式表的依賴關係,方便維護和除錯。 - 更好的瀏覽器相容性:
<link>
標籤擁有更廣泛的瀏覽器相容性。 - 支援媒體查詢:
<link>
標籤可以更靈活地使用媒體查詢,例如:
<link rel="stylesheet" media="screen and (max-width: 600px)" href="mobile.css">
總而言之,雖然 @import
在某些情況下仍然可用,但為了獲得更好的效能和可維護性,強烈建議使用 <link>
標籤來連結外部樣式表。