嘿,本文是有關瀏覽器中渲染的系列文章的一部分。如果您還沒有閱讀過之前的文章,請查看以下連結:
在上一篇文章中,我們探討了瀏覽器如何透過 DOM(文件物件模型)處理 HTML,DOM 定義了網頁的結構。然而,網頁不僅僅由 HTML 組成,許多人仍然不知道 CSS 也有自己的物件形式表示,稱為 CSSOM(CSS 物件模型)。
瀏覽器使用 CSSOM 結合 DOM 來建立頁面,結合結構 (HTML) 和樣式 (CSS),從而產生和諧的視覺呈現。
在本文中,我們將加深對 CSSOM 的了解,了解它的結構、重要性以及如何操作它。
與 DOM 一樣,CSSOM 是一種分層資料結構,但其功能是表示 Web 文件的 CSS。
CSSOM是瀏覽器在載入並處理樣式檔案後產生的。儘管它是與 DOM 分開構建的,但兩者一起工作,以便瀏覽器可以使用正確的結構 (DOM) 組裝頁面並應用適當的樣式 (CSSOM)。
CSSOM 的主要功能是為瀏覽器提供應該套用於頁面上每個元素的樣式的詳細「地圖」。
看下面 CSSOM 的視覺表示:
在程式碼中,這種表示方式如下所示:
我們之前看到的引用 CSSOM 的 DOM 樹表示如下:
瀏覽器為我們提供了一組 API,讓我們可以使用 javascript 操作 CSS。它類似於 DOM API,但針對 CSS 而不是 HTML。
使用此 API,我們可以動態讀取和操作頁面的 CSS。
操作樣式最簡單的方法是透過文件中存在的樣式屬性。
要首次存取和操作 CSSOM 元素,請開啟瀏覽器控制台並執行以下程式碼:
執行上面的程式碼片段後,我建議您檢查頁面元素並分析正文。請注意,現在我們的主體具有內聯樣式,看起來或多或少像這樣:
我們可以在頁面上新增或更改任何 CSS 屬性,並始終遵循 element.style.propertyname 模式。
操縱內聯樣式的另一種方法是透過樣式中存在的一些方法。
getCompulatedStyle 僅適用於唯讀。您將能夠存取任何元素或偽元素的樣式訊息,但無法進行更改。
編寫內聯樣式並不常見,因此我們也可以存取計算樣式,也就是我們在樣式表中定義的樣式。為此,我們可以直接存取和操作我們的樣式表。
在瀏覽器控制台中執行下面的程式碼片段:
有了它,您將可以存取 html 頭部聲明的所有樣式表。
這些樣式表以列表格式傳回(看起來像數組,但其實不是),您可以透過索引存取它。
從現在開始,我建議在其他地方執行測試,因為這個部落格是用 Tailwind CSS 製作的,並且操作樣式表變得更加複雜。
訪問此頁面並在其控制台中執行命令。
透過執行上面的程式碼,您將可以存取樣式表中存在的所有 CSS。按照與上面相同的邏輯,您可以透過索引存取元素。
在上面的程式碼中,我正在訪問頁面主體樣式聲明。
透過存取 style 屬性,我們可以新增或變更任何 CSS 屬性,但無需編寫內嵌樣式。
我建議您透過更改索引和更改不同元素的 CSS 來更多地使用此 api。
就像 DOM 一樣,CSSOM 是瀏覽器用來渲染過程的樹狀表示形式。
我們可以存取頁面的所有 CSS 並使用 javascript 自由操作它。了解如何執行此類操作對於理解樣式組件、線性等 CSS 工具至關重要
基礎知識最重要,但卻常被忽略。
在 Web 開發中,了解 HTML、CSS、JavaScript 以及瀏覽器的工作原理至關重要。有了這個堅實的基礎,您將能夠學習源自這些基礎知識的任何技術。
感謝您來到這裡!
我希望您在閱讀本文時學到了一些新東西。
下次再見!
CSS 物件模型
建構物件模型
CSSOM — CSS 物件模型
CSS 物件模型 (CSSOM) 簡介與指南
以上是了解瀏覽器中的渲染:CSSOM的詳細內容。更多資訊請關注PHP中文網其他相關文章!