Skip to content

CSS 是什麼?層疊樣式表入門與使用它的五個理由

什麼是 CSS:層疊樣式表入門

又稱串接樣式表、級聯樣式表、階層式樣式表,用於描述 HTML 文件外觀和格式的樣式表語言。主要用以塑造網站的特殊風格,也就是用於控制網頁的視覺呈現。例如:這段文字要用一般的黑色或是改用紅色標明重點?某段重要內容應該置於畫面的何處?想用什麼背景圖片及顏色裝飾您的網站?

三劍客中的角色

技術負責
HTML網頁有什麼內容、結構與語意
CSS這些內容長什麼樣子
JavaScript使用者操作時會發生什麼事
css
h1 {
  color: #c2410c;
  font-size: 2rem;
}

上面這段沒有任何運算,只是描述 符合這個條件的元素應該長成什麼樣子,這正是樣式表語言與程式語言最大的差別。

為什麼使用 CSS?

  • 分離內容與樣式:CSS 將樣式與 HTML 結構分離,讓開發者可以更輕鬆地管理和維護網頁。早期的排版都是用 表格 來製作,因此,原始碼中便會參雜著要讓使用者觀看與排版相關的內容。也由於前面敘述的原因,原始碼複雜的難以維護。
  • 除錯較容易:網頁的內容有問題就找 HTML,視覺的呈現有問題就找 CSS。
  • 提升複用性、擴充性:一個 CSS 文件可以應用於多個 HTML 頁面,減少重複工作。甚至,能讓已使用的樣式擴充數種不同的樣式出來。
  • 網頁的下載速度更快:呈上述,樣式與結構分離後,結構的檔案體積變小、樣式又提供給結構複用,這樣一來,下載的效率就變高。
  • 改善用戶體驗:通過 CSS,可以創建更美觀且一致的網頁設計。

名稱中的 Cascading 是什麼

同一個元素常常同時被好幾條規則指定樣式,瀏覽器必須決定聽誰的。這個決定的過程就叫 層疊(Cascading),依序看三件事:

  1. 樣式的來源(瀏覽器預設、使用者、開發者)
  2. 選取器的 優先權
  3. 書寫順序,後面的覆蓋前面的
css
p { color: black; }
p { color: red; }   /* 權重相同,後面的勝出 */

另一個常一起出現的概念是 繼承colorfont-size 這類文字相關的屬性會自動傳給子元素,marginborder 則不會。

接下來學什麼

CSS 的學習資源

常見問題

CSS 是程式語言嗎?

不是。CSS 是樣式表語言,負責描述元素該長什麼樣子,沒有判斷與迴圈這類流程控制。它有變數與少量計算函式,但整體仍是一套描述規則,不是拿來寫邏輯的。

層疊是什麼意思?

同一個元素可能同時被好幾條規則指定樣式,瀏覽器會依來源、選取器權重 與書寫順序決定誰勝出,這個決定過程就是層疊。CSS 名稱中的第一個 C 指的正是這件事。

該先學 HTML 還是 CSS?

先學 HTML。CSS 的每一條規則都要先選到某個 HTML 元素才能作用,沒有結構的概念,選取器 與排版都會學得很吃力。

為什麼要把樣式和內容分開?

同一份樣式能被多個頁面共用,改版時只要動一個檔案;結構檔案也會變小、可以被瀏覽器分別快取。除錯時更容易定位:內容不對找 HTML,外觀不對找 CSS。

延伸閱讀