
- CSS 教程
- CSS - 首頁
- CSS - 路線圖
- CSS - 簡介
- CSS - 語法
- CSS - 選擇器
- CSS - 引入方式
- CSS - 度量單位
- CSS - 顏色
- CSS - 背景
- CSS - 字型
- CSS - 文字
- CSS - 圖片
- CSS - 連結
- CSS - 表格
- CSS - 邊框
- CSS - 塊級邊框
- CSS - 內聯邊框
- CSS - 外邊距
- CSS - 列表
- CSS - 內邊距
- CSS - 游標
- CSS - 輪廓
- CSS - 尺寸
- CSS - 捲軸
- CSS - 內聯塊
- CSS - 下拉選單
- CSS - 可見性
- CSS - 溢位
- CSS - 清除浮動
- CSS - 浮動
- CSS - 箭頭
- CSS - 調整大小
- CSS - 引號
- CSS - 順序
- CSS - 位置
- CSS - 連字元
- CSS - 懸停
- CSS - 顯示
- CSS - 獲取焦點
- CSS - 縮放
- CSS - 位移
- CSS - 高度
- CSS - 連字元字元
- CSS - 寬度
- CSS - 透明度
- CSS - z-index
- CSS - 底部
- CSS - 導航欄
- CSS - 疊加層
- CSS - 表單
- CSS - 對齊
- CSS - 圖示
- CSS - 圖片庫
- CSS - 註釋
- CSS - 載入器
- CSS - 屬性選擇器
- CSS - 組合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 計數器
- CSS - 剪裁
- CSS - 書寫模式
- CSS - Unicode 雙向演算法
- CSS - min-content
- CSS - all
- CSS - inset
- CSS - isolation
- CSS - overscroll
- CSS - justify-items
- CSS - justify-self
- CSS - tab-size
- CSS - pointer-events
- CSS - place-content
- CSS - place-items
- CSS - place-self
- CSS - max-block-size
- CSS - min-block-size
- CSS - mix-blend-mode
- CSS - max-inline-size
- CSS - min-inline-size
- CSS - offset
- CSS - accent-color
- CSS - user-select
- CSS 高階
- CSS - 網格
- CSS - 網格佈局
- CSS - Flexbox
- CSS - 可見性
- CSS - 定位
- CSS - 層
- CSS - 偽類
- CSS - 偽元素
- CSS - @規則
- CSS - 文字效果
- CSS - 分頁媒體
- CSS - 列印
- CSS - 佈局
- CSS - 驗證
- CSS - 圖片精靈
- CSS - !important
- CSS - 資料型別
- CSS3 教程
- CSS3 - 教程
- CSS - 圓角
- CSS - 邊框圖片
- CSS - 多背景
- CSS - 顏色
- CSS - 漸變
- CSS - 盒陰影
- CSS - 盒裝飾中斷
- CSS - 游標顏色
- CSS - 文字陰影
- CSS - 文字
- CSS - 2D 變換
- CSS - 3D 變換
- CSS - 過渡
- CSS - 動畫
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按鈕
- CSS - 分頁
- CSS - 變數
- CSS - 媒體查詢
- CSS - 函式
- CSS - 數學函式
- CSS - 遮罩
- CSS - 形狀
- CSS - 圖片樣式
- CSS - 特效性
- CSS - 自定義屬性
- CSS 響應式
- CSS 響應式 - 簡介
- CSS 響應式 - 視口
- CSS 響應式 - 網格檢視
- CSS 響應式 - 媒體查詢
- CSS 響應式 - 圖片
- CSS 響應式 - 影片
- CSS 響應式 - 框架
- CSS 工具
- CSS - 畫素到EM轉換器
- CSS - 顏色選擇器和動畫
- CSS 資源
- CSS - 有用資源
- CSS - 討論
CSS 快速指南
使用我們的快速指南學習 CSS 基礎知識。本指南涵蓋了重要的 CSS 主題,幫助您快速有效地提高您的 Web 開發技能。在本文中,我們提供了所有 CSS 概念的快速概述以及示例。請務必將其加入書籤,以便您可以輕鬆地複習 CSS 以進行任何面試準備。
如果您想了解更多關於我們涵蓋的主題的資訊,只需訪問附加的連結,在那裡我們為每個主題都設定了一個專門的章節。
CSS 簡介
CSS 是層疊樣式表 (Cascading Style Sheets) 的縮寫。它有助於將 HTML 元素的表示定義為一個單獨的檔案,稱為 CSS 檔案,副檔名為 .css。
什麼是 CSS?
- CSS 代表層疊樣式表 (Cascading Style Sheets),用於描述網頁的展示和設計。
- 使用 CSS,您可以控制文字的顏色、字型的樣式、段落之間的間距、列的大小和佈局方式、使用的背景影像或顏色等。
- CSS 可以一次控制多個網頁的佈局。
CSS 在 Web 開發中的重要性
CSS 提供對 HTML 元素表示的精確控制,允許開發人員自定義佈局、排版、顏色和其他視覺屬性。
基本語法和結構
CSS 語法
selector { property: value }CSS 語法的分解

在 HTML 中包含 CSS 的方法
在 HTML 文件中包含 CSS 有三種方法。
- 內聯 CSS: 內聯 CSS 直接應用於 HTML 元素,它是這三種 CSS 中優先順序最高的。這將覆蓋任何外部或內部 CSS。
- 內部 CSS: 內部 CSS 在 HTML 的 head 部分的 <style> 標籤內定義,以讓瀏覽器知道在哪裡查詢 CSS。
- 外部 CSS: 外部 CSS 在單獨的檔案中定義,該檔案只包含 CSS 屬性,這是在處理專案時使用 CSS 的推薦方法。它易於維護,可以建立多個 CSS 檔案,並且您可以透過在 HTML 文件中使用 HTML <link> 標籤將其匯入來使用它們。
更多參考請檢視,CSS 引入方式。
CSS 選擇器
CSS 選擇器 用於定位特定的元素或元素組以應用樣式,例如顏色、字型、邊距等。
基本選擇器
- 元素選擇器: 當我們想要對文件中的所有 <p> 標籤或 <h1> 標籤應用類似樣式時使用。
- 類選擇器: 類選擇器定位具有特定類屬性值的元素以對其進行樣式設定。
- ID 選擇器: ID 選擇器定位具有特定 ID 屬性值的單個元素以對其進行樣式設定。
高階選擇器
- 屬性選擇器: 屬性選擇器根據元素上的特定屬性或屬性值來定位元素。
- 偽元素選擇器: 偽類選擇器用於為元素的特定狀態設定樣式,例如 :hover 用於在懸停時為元素設定樣式。
- 偽類選擇器: 偽元素選擇器用於為元素的特定部分設定樣式,而不是元素本身。
顏色和背景
CSS 顏色 可以使用預定義的顏色名稱、RGB、RGBA、HSL、HSLA 和十六進位制值來指定。這些顏色可以應用於網頁中任何元素的背景、邊框、文字、輸入游標等。
顏色值
以下是 CSS 支援的顏色值型別。
- 十六進位制 (hex): 這是使用十六進位制程式碼表示紅色、綠色和藍色值的六字元表示形式(例如,#3498db)。
- RGB: 使用 0 到 255 之間的三個數字表示紅色、綠色和藍色的強度(例如,rgb(52, 152, 219))。
- HSL: 使用色相、飽和度和亮度值指定顏色(例如,hsl(204, 70%, 53%))。
背景屬性
CSS 中的背景屬性用於控制 HTML 元素的背景圖形。我們可以為所有 HTML 元素結構設定純色、影像、漸變。
- background-color: 用於為元素定義純色背景。
- background-image: 用於將影像或漸變設定為背景。
- background-position: 用於指定背景影像的起始位置。
- background-size: 用於調整背景影像的大小。
CSS 盒模型
CSS 盒模型 是一個佈局概念,描述了元素如何在網頁上顯示。此模型將每個元素視為一個矩形框,由內容、填充、邊框和外邊距區域組成。下圖顯示了盒模型的示例。

盒模型型別
- 標準盒模型: 在此模型中,元素的內容區域僅由元素的高度和寬度定義。填充、邊框和外邊距新增到內容區域之外。
.box { width: 300px; height: 100px; padding: 20px; border: 10px solid black; margin: 30px; box-sizing: content-box; /* This is the default value */ }
.box{ width: 300px; height: 150px; padding: 20px; border: 10px solid black; margin: 30px; box-sizing: border-box; /* Margin & padding not included in content area */ }
過渡和動畫
CSS 過渡和動畫用於透過新增流暢的互動效果來增強使用者體驗。過渡使更改感覺更流暢,而動畫則建立連續的運動,例如旋轉、淡入淡出或元素反彈。
基本過渡
CSS 過渡 用於在指定的時間內平滑地更改 CSS 屬性。以下程式碼模擬當用戶將滑鼠懸停在按鈕上時,按鈕的背景顏色從淺藍色平滑過渡到深天藍色的效果。
.button { background-color: lightblue; transition: background-color 0.3s ease; /* Smooth color change on hover */ } .button:hover { background-color: deepskyblue; }
關鍵幀動畫
關鍵幀動畫 用於透過定義一系列階段來建立更復雜的運動。每個階段都在動畫的不同點指定樣式。以下程式碼生成一個方塊向左滑動的動畫。
@keyframes slideIn { 0% { transform: translateX(-100%); } 100% { transform: translateX(0); } } .box { animation: slideIn 1s ease-out; /* Slides box in from the left */ background-color: lightcoral; width: 100px; height: 100px; }
CSS 排版
CSS 排版屬性用於控制和增強網頁上文字的外觀。這些包括用於設定字型樣式的字型屬性,以及用於設定文字樣式的文字屬性。
字型屬性
- font-family: 定義文字的字型(例如,Arial、Times New Roman)。
- font-size: 設定文字大小。
- font-weight: 調整文字粗細或加粗。
- font-style: 定義文字樣式(例如,斜體、正常)。
- line-height: 指定文字行間距。
文字屬性
- color: 設定文字顏色。
- text-align: 水平對齊文字(例如,左對齊、居中對齊、右對齊)。
- text-decoration: 為文字新增效果,例如下劃線、上劃線或刪除線。
- text-transform: 控制文字的大小寫(例如,大寫、小寫)。
- letter-spacing: 設定字元間距。
佈局技術
CSS 提供多種佈局技術,可以有效地組織和定位網頁上的元素。常用的佈局技術包括 Flexbox、CSS Grid 和定位方法。以下部分簡要概述了這些技術。
Flexbox 佈局系統
Flexbox 是 CSS 中的一維佈局系統,用於在容器內水平或垂直排列專案。此係統使用多個屬性進行專案大小和對齊調整,從而確保響應式設計。該圖顯示了容器中的 Flexbox 佈局。

設計 Flexbox 系統非常簡單。我們只需要將容器的display 屬性設定為 flex。然後,我們可以使用與 flex 相關的屬性來控制容器內專案的對齊方式。以下程式碼顯示了 Flex 佈局系統的示例。
.container { display: flex; justify-content: space-between; /* Ensures Evenly spaced items */ align-items: center; /* Centering items Vertically */ } .item { background-color: lightcoral; padding: 20px; border: 3px solid #ccc; }
Grid 佈局系統
Grid 佈局 是一個二維佈局系統,用於透過在容器中定義行和列來建立網頁的複雜基於網格的結構。它提供了對佈局結構的高階控制,包括區域、間隙和對齊方式。下圖顯示了網頁的基於網格的佈局系統。

要使用 Grid 佈局,請將容器的display 屬性設定為 grid。然後,我們可以使用 grid-template-rows 和 grid-template-columns 等屬性定義行和列的數量和大小。以下示例程式碼顯示了一個基本的 Grid 佈局。
.container { display: grid; grid-template-columns: repeat(3, 1fr); /* Creates 3 columns */ grid-template-rows: auto; /* Rows adjust based on content height */ gap: 10px; /* Space between grid items */ } .item { background-color: lightblue; padding: 20px; border: 2px solid #ddd; }
CSS 定位
CSS 定位 控制元素在佈局中的位置。這些用於在不遵循佈局系統規則的情況下,手動將專案放置在容器內。下圖顯示了定位元素的示例。

在 CSS 中,position 屬性 用於手動定位容器內的元素。透過它,我們可以建立浮動側邊欄、靜態定位元素、相對定位元素和絕對定位元素。以下是 position 屬性的值。
- 靜態 (Static): 預設定位,元素遵循正常的文件流。
- 相對 (Relative): 相對於其正常位置定位元素,允許調整而不影響周圍元素。
- 絕對 (Absolute): 相對於其最近的已定位祖先元素定位元素,將其從文件流中移除。
- 固定 (Fixed): 相對於視口固定元素的位置,使其不受滾動影響。
- 粘性 (Sticky): 相對定位和固定定位的混合,當您滾動時,元素會粘滯在指定位置,直到到達邊界。
響應式設計
響應式設計是指建立可在多種螢幕尺寸和裝置上流暢執行的網頁。這種方法確保佈局、影像和內容在任何裝置上(從桌上型電腦到智慧手機)都能平滑地調整。
媒體查詢
CSS 中的媒體查詢 用於根據螢幕尺寸、解析度和使用者裝置的其他特性應用不同的 CSS 樣式。媒體查詢使用 @media 規則在滿足特定條件時包含額外的 CSS 屬性塊。
.container{ /* General styles for container element */ display: flex; flex-direction: row; } @media (max-width: 768px) { /* Styles for screen width less than 768 */ .container { flex-direction: column; /* Stacks items vertically on smaller screens */ } }
上面的程式碼使用媒體查詢在螢幕尺寸縮小到 768px 時更改專案的堆疊順序。
響應式單位
當我們需要根據螢幕尺寸縮放元素的尺寸和字型大小時,可以使用響應式單位。
響應式設計中最常用的單位是:
- 百分比 (%): 相對父元素設定大小。例如,100% 的寬度表示使用父元素的整個寬度。
- em: 用於相對於最近的父元素的字型大小設定字型大小。
- 視口寬度 (vw): 基於視口寬度 1% 的單位,非常適合水平縮放元素。(1vw = 當前視口寬度的 1%)
- 視口高度 (vh): 基於視口高度 1% 的單位,有助於垂直縮放元素。(1vh = 當前視口高度的 1%)
檢視有關CSS 單位 的文章,以瞭解有關響應式單位及其與普通單位的區別的更多資訊。
用於列印的 CSS 樣式
CSS 為網頁的可列印版本提供特殊功能和屬性。使用這些特定於列印的樣式表和屬性,我們可以控制內容在紙張上的顯示方式,確保佈局清晰易讀,且沒有不必要的元素。對於列印頁面樣式,最好使用淺色主題,因為它可以減少墨水消耗。
為列印設定網頁樣式
要專門為列印設定網頁樣式,我們可以在 CSS 中使用@media print 規則。這可用於調整應該在紙張上不同顯示的元素,例如移除導航欄、調整字型大小以及將背景顏色設定為白色。
@page 規則 用於設定列印文件的頁面佈局屬性,例如邊距、頁面方向和尺寸。以下部分顯示瞭如何在 css 中使用媒體列印和 @page。
@media print { body { font-size: 12pt; color: black; background: none; /* Removes background colors */ } .no-print { display: none; /* Hides elements like ads or navigation */ } } @page { size: A4; margin: 1in; } @page :first { margin-top: 2in; /* Extra top margin for the first page */ }
特定於列印的屬性
一些 CSS 屬性對列印樣式特別有用。這些包括:
- page-break-before 和 page-break-after: 控制列印內容中頁面中斷的位置,允許您在新頁面上開始新部分。
- color-adjust: economy; 透過調整顏色以減少墨水使用來啟用省墨模式,這對於節省墨水量大的文件的資源非常有用。
- size: 定義列印頁面的尺寸,例如 size: A4; 用於標準 A4 紙。
CSS 變數
CSS 變數 是自定義屬性,允許您在整個 CSS 程式中儲存和重複使用值。這類似於其他程式語言中的變數。
宣告和使用 CSS 變數。
CSS 變數通常在:root 選擇器內定義。以下是宣告 CSS 變數的語法:
:root { --variable-name: value; }
要使用 CSS 變數,請遵循以下語法:
selector { var(--variable-name, fallback-value); }
回退值用於確保即使未定義或定義不正確的變數,CSS 程式碼仍然有效並能正常工作。
使用 CSS 變數的示例
以下簡單的設定顯示瞭如何在 CSS 中使用變數。
<!DOCTYPE html> <html> <head> <style> :root { --white-color: #f0f0f0;/* Shade for white */ } .box { text-align: center; padding: 20px; background-color: var(--white-color, white); color: var(--black-color, black);/* Uses fallback value */ } </style> </head> <body> <div class="box"> <h2>Tutorialspoint</h2> <p> How to code a website using HTML and CSS </p> </div> </body> </html>
CSS 函式
CSS 函式 用於執行計算、建立漸變、定義顏色和應用效果。以下部分解釋了 CSS 中一些重要的函式類別。
數學函式
數學函式用於動態計算響應式元素的大小。
- calc(): 此函式直接在 CSS 中執行計算,例如加法、減法。例如,width: calc(100% - 50px);
- min()、max() 和 clamp(): 這些函式設定值的限制。例如,width: max(100%, 100px); 這將寬度設定為 100% 的父級寬度和 100px 中的最大值。
漸變函式
漸變函式用於為背景樣式建立平滑的顏色過渡。以下是漸變函式的型別:
- linear-gradient(): 沿指定方向建立線性顏色漸變。例如,background: linear-gradient(to right, #3498db, #2ecc71);
- radial-gradient(): 從中心點開始建立圓形漸變。例如,background: radial-gradient(circle, #ff9a9e, #fad0c4);
- conic-gradient(): 建立圍繞中心點旋轉的漸變,產生錐形效果。
要了解如何生成漸變,請檢視CSS 漸變章節。
顏色函式
顏色函式提供對顏色的精確控制,包括不透明度和各種顏色模型,以實現細微的效果。
- rgb() 和 rgba(): 這些函式使用紅、綠、藍值定義顏色。rgba() 包括用於不透明度的 alpha 通道,例如,rgba(52, 152, 219, 0.5)。
- hsl() 和 hsla(): 使用色相、飽和度和亮度來定義顏色,hsla() 新增 alpha 以實現透明度。例如,hsla(210, 50%, 50%, 0.8)。
檢視CSS 顏色以瞭解有關顏色函式的更多資訊。
濾鏡函式
濾鏡函式將視覺效果應用於元素,例如模糊、亮度調整和顏色變化。
示例:blur() 新增模糊效果,brightness() 調整光照水平,contrast() 更改對比度,grayscale() 應用灰度濾鏡,hue-rotate() 旋轉影像中的顏色。
CSS 特異性順序
CSS 特異性 決定了當使用多個選擇器宣告多個 CSS 規則時,哪個 CSS 規則適用於某個元素。下圖顯示了 CSS 選擇器的特異性順序。

例如,如果使用類選擇器和 ID 選擇器在 HTML 元素上指定兩個或多個 CSS 規則,則將在該元素上應用特異性值最高的選擇器(在本例中為 ID 選擇器)中宣告的屬性。
覆蓋特異性規則
如果某個屬性被標記為 !important,則特異性順序變得無關緊要。這意味著,如果任何選擇器中的任何屬性都被標記為 important,則無論使用哪個選擇器,該屬性都具有最高的優先順序。檢視關於!important 規則 的章節以瞭解更多資訊。現在,讓我們來看一個覆蓋特異性規則的示例。
<!DOCTYPE html> <html> <head> <style> p { color: black; font-weight: bold; } .special { color: blue; } #unique { color: darkgreen; } p { color: darkred !important; } </style> </head> <body> <p id="unique" class="special"> This paragraph is darkred. The !important keyword wins over every other selector!!! </p> <p class="special" style="color: green"> This paragraph is darkred. The !important keyword wins even over inline style!!! </p> </body> </html>
CSS 簡寫屬性
CSS 中的簡寫屬性用於將多個屬性宣告組合成單個屬性。這些對於減少程式碼行數至關重要。以下是 CSS 中的簡寫屬性。
邊距和填充簡寫屬性
屬性 margin 是以下屬性的簡寫
- margin-top:設定元素的頂部邊距。
- margin-right:設定元素的右側邊距。
- margin-bottom:設定元素的底部邊距。
- margin-left:設定元素的左側邊距。
類似地,padding 也是其各個屬性的簡寫。讓我們來看一個關於兩者的示例。
margin: [top] [right] [bottom] [left]; padding: [top] [right] [bottom] [left]; /* Example */ margin: 10px 20px 10px 20px; padding: 5px 20px 20px 10px;
邊框和輪廓簡寫屬性
屬性 border 是以下屬性的簡寫
- border-width:設定元素邊框的寬度。
- border-style:定義邊框的樣式,例如實線、虛線或點線。
- border-color:設定邊框的顏色。
類似地,outline 也是其各個屬性的簡寫。讓我們來看一個關於兩者的示例。
border: [width] [style] [color]; outline: [width] [style] [color]; /* Example */ border: 1px solid black; outline: 2px dashed red;
背景簡寫屬性
屬性 background 是以下屬性的簡寫
- background-color:設定元素的背景顏色。
- background-image:在元素上設定一個或多個背景影像。
- background-position:設定背景中每個影像的初始位置。
- background-size:控制背景影像的大小。
- background-repeat:控制背景中影像的重複。
- background-origin:設定背景的原點。
- background-attachment:相對於視口指定背景的位置,固定或可滾動。
- background-clip:控制背景影像延伸到元素的填充或內容框之外的程度。
以下是使用背景簡寫屬性的語法
background: [bg-color] [bg-image] [bg-position]/[bg-size] [bg-repeat] [bg-origin] [bg-clip] [bg-attachment]; /* Example */ background: green url('image.jpg') top/20% no-repeat border-box content-box fixed;
如果要新增 `background-size`,則必須將其緊跟在 `background-position` 之後,並用 '/' 分隔。例如:“left/50%”。
字型簡寫屬性
屬性 font 是以下屬性的簡寫
- font-style:指定字型的樣式,例如普通、斜體或傾斜。
- font-variant:控制替代字形的用法,例如小型大寫字母。
- font-weight:設定字型的粗細或粗體。
- font-size:定義字型的尺寸。
- line-height:控制文字行之間的間距。
- font-family:指定要用於文字的字體系列,例如 Arial 或 Times New Roman。
以下是使用字型簡寫屬性的語法
font: [font-style] [font-variant] [font-weight] [font-size] /[line-height] [font-family]; /* Example */ font: italic small-caps bold 16px/1.5 Arial, sans-serif;
Flex 和 Grid 簡寫屬性
屬性 flex 是以下屬性的簡寫
- flex-grow:定義彈性專案相對於其餘專案的增長能力。
- flex-shrink:設定彈性專案在必要時收縮的能力。
- flex-basis:指定彈性專案的初始主要尺寸。
類似地,屬性 grid 也是其各個屬性的簡寫。讓我們來看一個關於兩者的示例。
flex: [grow] [shrink] [basis]; grid: [rows] [columns] [template]; /* Example */ flex: 1 0 auto; grid: 1fr 2fr / repeat(3, 1fr);
動畫和過渡簡寫屬性
屬性 animation 是以下屬性的簡寫
- animation-name:指定 @keyframes 動畫的名稱。
- animation-duration:定義動畫完成一個週期所需的時間。
- animation-timing-function:設定動畫的速度曲線。
- animation-delay:指定動畫開始之前的延遲。
- animation-iteration-count:設定動畫應重複的次數。
- animation-direction:定義動畫是向前播放、向後播放還是在這兩者之間交替播放。
- animation-fill-mode:指定在動畫執行之前和之後如何將樣式應用於目標。
- animation-play-state:確定動畫是正在執行還是已暫停。
類似地,屬性 transition 也是其各個屬性的簡寫。讓我們來看一個關於兩者的示例。
animation: [name] [duration] [timing-function] [delay] [iteration- count] [direction] [fill-mode] [play-state]; transition: [property] [duration] [timing-function] [delay]; /* Example */ animation: slide 2s ease-in 0s infinite alternate; transition: opacity 0.5s ease-in;
CSS 重置和規範化
每個瀏覽器都有其自己的預設樣式,如果管理不當,會導致設計不一致。CSS 重置和規範化是確保不同瀏覽器樣式一致的兩種方法。讓我們詳細瞭解一下。
- CSS 重置:重置透過使用通用選擇器 (*) 將幾乎所有 CSS 屬性設定為基線(例如,邊距、填充、字型大小等通常設定為零)來刪除所有預設瀏覽器樣式。透過這種方法,我們可以從“乾淨的底板”開始,根據需要新增樣式。我們還可以使用外部重置工具,例如Eric Meyer 的 CSS 重置。
/* Resetting using universal selector */ *{ margin: 0; padding: 0; }
CSS 預處理器
CSS 預處理器是用於透過新增程式設計功能(例如變數、巢狀和函式)來擴充套件 CSS 功能的工具。然後,這些預處理器中編寫的程式碼將被編譯成標準 CSS,供瀏覽器解釋。以下是流行的 CSS 預處理器。
SASS 預處理器
SASS 代表 Syntactically Awesome Style Sheets,是一種流行的 CSS 預處理器,用於向 CSS 新增程式設計功能。它支援變數、巢狀規則、mixin(可重用樣式)和函式。SASS 檔案通常使用 .scss 或 .sass 副檔名,並編譯成標準 CSS。以下是一個 SASS 檔案的示例程式碼。
/* Example of SASS syntax */ $primary-color: #3498db; .container { color: $primary-color; .item { padding: 10px; &:hover { background-color: lighten($primary-color, 20%); } } }
LESS 預處理器
LESS 是另一個 CSS 預處理器,它提供與 SASS 類似的功能,例如變數、巢狀和 mixin。LESS 的語法比 SASS 更簡單,尤其是在使用 @ 符號宣告變數時。LESS 檔案使用 .less 副檔名,可以編譯成 CSS,也可以使用 JavaScript 在瀏覽器中執行。
/* Example of LESS syntax */ @primary-color: #2ecc71; .container { color: @primary-color; .item { padding: 15px; &:hover { background-color: darken(@primary-color, 10%); } } }
新的 CSS 框架
CSS 框架是預先編寫的庫,使用現成的元件和實用程式簡化 Web 開發。以下是流行的 CSS 框架。
Bootstrap CSS 框架
Bootstrap 是一個流行的 CSS 框架,用於建立響應式網站。它具有各種預構建元件,例如導航欄、按鈕、網格和表單控制元件,以及靈活的網格系統。使用 Bootstrap,您可以快速開發適應不同螢幕尺寸的佈局。
Tailwind CSS 框架
Tailwind CSS 是一個實用優先的 CSS 框架,它提供低階實用程式類來構建自定義設計。Tailwind 不會像 Bootstrap 框架那樣提供預定義的元件。相反,它專注於透過提供邊距、填充、對齊等實用程式來賦予開發人員完全的控制權。
用於輔助功能的 CSS
CSS 可用於使網站對所有使用者(包括殘疾使用者)都可訪問。使用 CSS 增強輔助功能可確保內容更容易感知、理解和導航,從而創造更具包容性的網路體驗。以下是使 CSS 可訪問的一些步驟。
輔助功能最佳實踐
CSS 中的以下最佳實踐可以增強輔助功能和可用性
- 對比度和可讀性:確保文字和背景顏色之間的對比度足夠高,以確保可讀性。使用諸如 WebAIM 對比度檢查器之類的工具來驗證對比度比。
- 使用語義化 HTML 並避免使用樣式進行結構設計:使用 CSS 進行演示,而不是建立結構,因為 HTML 語義將頁面的層次結構傳達給輔助技術。
- 避免無法訪問的隱藏內容:僅在需要時才使用 CSS 屬性(如 visibility: hidden 或 display: none)謹慎地隱藏內容。
- 支援高對比度模式:使用媒體查詢來調整作業系統上高對比度模式下的樣式,以幫助視力障礙使用者。
- 謹慎地將 ARIA 角色與 CSS 配合使用:確保 CSS 更改與 ARIA 角色保持一致,以提高與螢幕閱讀器的相容性。
CSS 效能最佳化
最佳化 CSS 將有助於提高網頁的載入時間和渲染效能。高效編寫的 CSS 樣式表可以減少頁面膨脹,即使在較慢的網路或功能較弱的裝置上也能確保更好的使用者體驗。
編寫最佳化的 CSS 的技巧
以下是編寫最佳化的 CSS 樣式表的一些技巧
- 最小化選擇器:使用簡單的選擇器來減少渲染時間。深度巢狀和過於具體的選擇器需要時間來處理,從而使網站變慢。
- 使用簡寫屬性:簡寫屬性有助於減少 CSS 程式碼的整體大小,使其更容易維護和載入速度更快。
- 避免冗餘 CSS:刪除未使用的或重複的 CSS 規則以減小檔案大小,這反過來會減少頁面載入時間。
- 使用模組化 CSS 進行組織:將 CSS 分解成可重用的元件(例如,使用實用程式類)以最大限度地減少重複程式碼。使用像 Tailwind CSS 這樣的框架來獲得內建的實用程式類和元件。
用於最佳化 CSS 效能的工具
一些工具可以幫助分析和最佳化 CSS 效能,例如
- Chrome DevTools:使用 Chrome 的內建 DevTools 檢查、編輯和最佳化 CSS。它允許您識別未使用的 CSS 並衡量效能指標。
- CSS Stats:提供有關 CSS 檔案大小、選擇器計數、唯一顏色等的詳細報告,以幫助簡化您的 CSS。
- PurgeCSS:透過分析網頁上實際使用的樣式來幫助刪除未使用的 CSS,從而減小最終 CSS 的大小。
- Autoprefixer: 自動新增 CSS 供應商字首,使程式碼與不同的瀏覽器相容,無需為每個字首編寫額外的程式碼。
- PostCSS: 一個使用外掛處理 CSS 的工具,用於最佳化,例如縮小、自動新增字首和媒體查詢組織。
常見問題和故障排除
在使用 CSS 時,某些常見問題可能會破壞設計和佈局。瞭解如何識別和解決這些問題非常重要。
常見問題及解決方法
- 意外的邊距和填充:有時瀏覽器會自動將預設邊距和填充應用於元素,這可能會導致佈局不一致。要解決此問題,請使用萬用字元選擇器將所有元素的 margin: 0 和 padding: 0 設定為 0。
- 元素重疊:由於定位或浮動問題,元素可能會重疊。您可以透過檢查 z-index 值並根據需要確保正確使用 position 屬性(例如 relative、absolute 或 fixed)來解決此問題。
- Flexbox 或 Grid 對齊錯誤: Flex 和 Grid 佈局有時可能出現對齊錯誤。請確認容器和專案屬性(如 justify-content、align-items 和 grid column/row 設定)是否正確應用。
- 使用註釋:在程式碼中添加註釋以解釋複雜的樣式,這也有助於未來的開發者理解 CSS 規則的目的和功能。
CSS 除錯
除錯工具用於解決程式碼中的邏輯錯誤。以下是除錯 CSS 樣式表的一些常用方法。
- 審查元素工具:使用 Chrome 和 Firefox 等瀏覽器中的“審查元素”工具來檢查樣式的應用位置。此工具突出顯示繼承的樣式,並有助於發現意外的覆蓋。
- CSS 驗證:CSS 驗證工具,例如W3C CSS 驗證器,可以幫助識別語法錯誤和不受支援的屬性,從而防止渲染問題。
- 檢查控制檯警告:大多數 CSS 錯誤都可以透過正確分析瀏覽器中的控制檯警告來解決。
- 使用開發者版瀏覽器:開發者版瀏覽器專為開發者設計,具有額外的除錯和測試功能。
CSS 最佳實踐
遵循 CSS 最佳實踐有助於建立簡潔、有序且高效的樣式表,使程式碼更易於維護和改進。這包括保持程式碼模組化、使用命名約定以及採用預處理器等實用工具以獲得額外功能。
編寫簡潔易維護的 CSS
編寫易於維護的 CSS 涉及邏輯地組織樣式並使用一致的命名。對類似樣式進行分組,註釋程式碼,並遵循諸如 BEM(塊元素修飾符)之類的命名約定,以提高畫質晰度和可重用性。這些實踐使管理樣式隨著專案增長變得更容易。
/* BEM Naming Convention Example */ .button { background-color: #007bff; } .button--large { padding: 1rem 2rem; }
使用 CSS 預處理器
如前幾節所述,CSS 預處理器,例如SASS和LESS,為樣式表提供了程式語言的功能。透過這些,我們可以使用變數、巢狀規則、mixin 等。
$primary-color: #007bff; .button { background-color: $primary-color; &--large { padding: 1rem 2rem; } }