亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

什么是DOM?如何構(gòu)建web頁面-創(chuàng)新互聯(lián)

文檔對象模型,或“DOM”,是web頁面的接口。它本質(zhì)上是頁面的API,允許程序讀取和操作頁面的內(nèi)容、結(jié)構(gòu)和樣式。讓我們分解一下。

成都創(chuàng)新互聯(lián)公司是專業(yè)的攸縣網(wǎng)站建設(shè)公司,攸縣接單;提供成都網(wǎng)站設(shè)計、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行攸縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

如何構(gòu)建web頁面?

瀏覽器如何從一個源HTML文檔到在視圖中顯示一個樣式化的交互式頁面被稱為“關(guān)鍵呈現(xiàn)路徑”。雖然這個過程可以分解為幾個步驟,但正如我在理解關(guān)鍵呈現(xiàn)路徑的文章中所述,這些步驟大致可以分為兩個階段。第一個階段涉及瀏覽器解析文檔以確定最終在頁面上呈現(xiàn)什么,第二個階段涉及瀏覽器執(zhí)行呈現(xiàn)。

什么是DOM?如何構(gòu)建web頁面

第一階段的結(jié)果是所謂的“渲染樹”。渲染樹是將在頁面上呈現(xiàn)的HTML元素及其相關(guān)樣式的表示。為了構(gòu)建這個樹,瀏覽器需要兩件事:

1.CSSOM,與元素相關(guān)的樣式的表示
2.DOM,元素的表示

如何創(chuàng)建DOM?

DOM是源HTML文檔的基于對象的表示。正如我們將在下面看到的,它有一些不同之處,但它本質(zhì)上是試圖將HTML文檔的結(jié)構(gòu)和內(nèi)容轉(zhuǎn)換為可由各種程序使用的對象模型。
DOM的對象結(jié)構(gòu)由所謂的“節(jié)點樹”表示。之所以這樣叫它,是因為它可以被認(rèn)為是一棵樹,它有一個單一的父莖,它可以分出幾個子枝,每個子枝都可能有葉子。在本例中,父“莖”是根元素,子“分支”是嵌套的元素,而“葉”是元素中的內(nèi)容。

我們以此HTML文檔為例

       My first web page          

Hello, world!

     

How are you?

    

本文檔可以表示為以下節(jié)點樹:

什么是DOM?如何構(gòu)建web頁面

DOM不是什么?

在我上面給出的示例中,DOM似乎是源HTML文檔或您所看到的DevTools的一對一映射。但是,正如我所提到的,有一些區(qū)別。為了完全理解DOM是什么,我們需要了解它不是什么。

DOM不是源HTML

雖然DOM是從源HTML文檔創(chuàng)建的,但它并不總是完全相同。在兩個實例中,DOM可以與源HTML不同。

  1. 當(dāng)HTML無效時

DOM是有效HTML文檔的接口。在創(chuàng)建DOM的過程中,瀏覽器可能會糾正HTML代碼中的一些錯誤。
讓我們以這個HTML文檔為例:

  Hello, world! 

文檔缺少一個 元素,這是有效HTML的一個要求。如果我們查看生成的DOM樹,就會發(fā)現(xiàn)這已經(jīng)得到了糾正:

什么是DOM?如何構(gòu)建web頁面

  1. 當(dāng)DOM被Javascript修改時

除了作為查看HTML文檔內(nèi)容的接口之外,還可以修改DOM,使其成為一種活動資源。 例如,我們可以使用Javascript為DOM創(chuàng)建額外的節(jié)點。

var newParagraph = document.createElement("p"); var paragraphContent = document.createTextNode("I'm new!"); newParagraph.appendChild(paragraphContent); document.body.appendChild(newParagraph);

這將會更新DOM,但當(dāng)然不會更新HTML文檔。

DOM不是在瀏覽器中看到的(即,渲染樹)

你在瀏覽器視圖中看到的是渲染樹,如前所述,它是DOM和CSSOM的組合。DOM與渲染樹的真正區(qū)別在于,后者只包含最終將在屏幕上繪制的內(nèi)容。
[圖片上傳失敗...(image-61c376-1546073073535)]

因為渲染樹只關(guān)注渲染的內(nèi)容,它排除了視覺上隱藏的元素。例如,具有與display: none樣式相關(guān)聯(lián)的元素。

            

Hello, world!

     How are you?

    

DOM將包含

元素:

什么是DOM?如何構(gòu)建web頁面

然而,渲染樹,以及在視圖中看到的內(nèi)容,將不包含該元素。

什么是DOM?如何構(gòu)建web頁面

DOM不是DevTools中的DOM

這種差異有點小,因為DevTools元素檢查器提供了與瀏覽器中DOM最接近的近似。但是,DevTools檢查器包含了不在DOM中的其他信息。

最好的例子是CSS偽元素。使用::before和::after選擇器創(chuàng)建的偽元素構(gòu)成CSSOM和渲染樹的一部分,但在技術(shù)上不是DOM的一部分。這是因為DOM是單獨從源HTML文檔構(gòu)建的,不包括應(yīng)用于元素的樣式。

盡管偽元素不是DOM的一部分,但是它們在我們的devtools元素檢查器中。

什么是DOM?如何構(gòu)建web頁面

這就是Javascript不能以偽元素為目標(biāo)的原因,因為它們不是DOM的一部分。

總結(jié)

DOM是HTML文檔的接口。瀏覽器使用它作為決定在視圖中呈現(xiàn)什么內(nèi)容的第一步,并通過Javascript程序修改頁面的內(nèi)容、結(jié)構(gòu)或樣式。

雖然與源HTML文檔的其他形式類似,DOM在許多方面是不同的:

  • [ ] 它總是有效的HTML
  • [ ] 它是一個活生生的模型,可以由Javascript修改
  • [ ] 它不包含偽元素(例如,::after)
  • [ ] 它確實包含隱藏元素(例如,display: none)

這里推薦一下我的學(xué)習(xí)交流群:731771211,里面都是學(xué)習(xí)前端的,如果你想制作酷炫的網(wǎng)頁,想學(xué)習(xí)編程。從最基礎(chǔ)的HTML+CSS+JS【炫酷特效,游戲,插件封裝,設(shè)計模式】到移動端HTML5的項目實戰(zhàn)的學(xué)習(xí)資料都有整理,送給每一位前端小伙伴,有想學(xué)習(xí)web前端的,或是轉(zhuǎn)行,或是大學(xué)生,還有工作中想提升自己能力的,正在學(xué)習(xí)的小伙伴歡迎加入

點擊: 加入


網(wǎng)頁題目:什么是DOM?如何構(gòu)建web頁面-創(chuàng)新互聯(lián)
本文來源:http://news.spvevtbd.cn/article/cdhoei.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP