CSS解析是瀏覽器將CSS樣式表轉換為可供渲染引擎使用的計算機可讀代碼過程。這個過程通常分為四個階段。
1. Tokenization(標記化)
Tokenization階段將原始CSS文本分割成多個令牌。這些令牌是CSS的最小語法單元,比如屬性名和屬性值,選擇器和聲明塊等。這些令牌通常以文本流的形式被讀入并交給下一個階段處理。
2. Parsing(解析)
解析階段是將標記轉換為CSS文檔的結構層次。這個過程包括創建節點對象,并將它們彼此連接以形成一個樹形結構,稱為CSS對象模型(CSSOM)。CSSOM描述了CSS文檔中的每一個元素,以及它們的層次關系。
3. Cascading(級聯)
層疊階段是將不同級別的樣式應用于相同元素的過程。它是根據不同的規則和優先級進行的,如樣式規則的來源和特定元素的選擇器。這個過程將在CSSOM樹上運行,并根據特定的規則確定每個元素應用的樣式。
4. Rendering(渲染)
渲染階段是將CSS樣式應用于HTML文檔并在顯示屏幕上顯示最終結果的過程。它涉及到將CSS樣式應用于文檔中的每個元素,包括計算每個元素的大小、位置和顏色等。這個過程通常由瀏覽器引擎執行,由GPU硬件加速渲染。