引入 CSS 的方式

引入 CSS 有 4 種方式。其中有 2 種方式是在 HTML 文件中直接添加 CSS 代碼,另外 2 種是引入外部 CSS 文件。下面我們就來看看這些方式和它們的優缺點。

內聯方式

內聯方式指的是直接在 HTML 標籤中的 style 屬性中添加 CSS。

示例:

<div style="background: red"></div>n

這通常是個很糟糕的書寫方式,它只能改變當前標籤的樣式,如果想要多個 <div> 擁有相同的樣式,你不得不重複地為每個 <div>添加相同的樣式,如果想要修改一種樣式,又不得不修改所有的 style 中的代碼。很顯然,內聯方式引入 CSS 代碼會導致 HTML 代碼變得冗長,且使得網頁難以維護。

嵌入方式

嵌入方式指的是在 HTML 頭部中的 <style> 標籤下書寫 CSS 代碼。

示例:

<head>n <style>nn .content {n background: red;n }nn </style>n</head>n

嵌入方式的 CSS 只對當前的網頁有效。因為 CSS 代碼是在 HTML 文件中,所以會使得代碼比較集中,當我們寫模板網頁時這通常比較有利。因為查看模板代碼的人可以一目了然地查看 HTML 結構和 CSS 樣式。因為嵌入的 CSS 只對當前頁面有效,所以當多個頁面需要引入相同的 CSS 代碼時,這樣寫會導致代碼冗餘,也不利於維護。

鏈接方式

鏈接方式指的是使用 HTML 頭部的 <head> 標籤引入外部的 CSS 文件。

示例:

<head>n <link rel="stylesheet" type="text/css" href="style.css">n</head>n

這是最常見的也是最推薦的引入 CSS 的方式。使用這種方式,所有的 CSS 代碼只存在於單獨的 CSS 文件中,所以具有良好的可維護性。並且所有的 CSS 代碼只存在於 CSS 文件中,CSS 文件會在第一次載入時引入,以後切換頁面時只需載入 HTML 文件即可。

導入方式

導入方式指的是使用 CSS 規則引入外部 CSS 文件。

示例:

<style>n @import url(style.css);n</style>n

比較鏈接方式和導入方式

鏈接方式(下面用 link 代替)和導入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我們來比較這兩種方式,並且說明為什麼不推薦使用 @import。

  • link 屬於 HTML,通過 <link> 標籤中的 href 屬性來引入外部文件,而 @import 屬於 CSS,所以導入語句應寫在 CSS 中,要注意的是導入語句應寫在樣式表的開頭,否則無法正確導入外部文件;

  • @import 是 CSS2.1 才出現的概念,所以如果瀏覽器版本較低,無法正確導入外部樣式文件;

  • 當 HTML 文件被載入時,link 引用的文件會同時被載入,而 @import 引用的文件則會等頁面全部下載完畢再被載入;

小結:我們應盡量使用 <link> 標籤導入外部 CSS 文件,避免或者少用使用其他三種方式。

參考資料:

  1. don』t use @import

  2. link, embed, inline and import

推薦閱讀:

前端開發者應知必會:瀏覽器是如何渲染網頁的
「每日一題」CSRF 是什麼?
從零學習前端開發·HTML
你可能不知道的 css 內容塊
Webpack 速成

TAG:前端开发 | 前端入门 | CSS |