国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瀏覽器視圖層級(jí)中的“根”:<html>和<body>的屬性研究

FuisonDesign / 2458人閱讀

摘要:瀏覽器中的可以認(rèn)為是整個(gè)結(jié)構(gòu),但是根節(jié)點(diǎn)非常混亂,我們通常搞不清楚根節(jié)點(diǎn)是還是,還是我對(duì)這幾個(gè)節(jié)點(diǎn)深入研究了一下,以下是我的總結(jié)。結(jié)論顯示元素中,根元素不是,是。

做前端開發(fā)的同學(xué)都會(huì)知道,每一個(gè)UI系統(tǒng)(比如IOSAndroid)中都會(huì)有一個(gè)view hierarchy(視圖層級(jí))的概念,即所有的可視元素(大到一個(gè)頁(yè)面,小到一個(gè)button)都在一個(gè)樹形結(jié)構(gòu)中,而樹形結(jié)構(gòu)的”根節(jié)點(diǎn)“為window,即整個(gè)屏幕或窗口。

瀏覽器中的view hierarchy可以認(rèn)為是整個(gè)dom結(jié)構(gòu),但是“根節(jié)點(diǎn)”非常混亂,我們通常搞不清楚“根節(jié)點(diǎn)”是、還是window,還是document? 我對(duì)這幾個(gè)節(jié)點(diǎn)深入研究了一下,以下是我的總結(jié)。

注:所有測(cè)試均在mac的chrome下,其他瀏覽器未測(cè)試。不過(guò)原理基本相同

我做了一個(gè)demo:http://linchen1987.github.io/tool/htmlbody/,大家可以邊讀文章邊通過(guò)demo體會(huì)。

1. 根View是誰(shuí)?

demo中可以看到:htmlbody沒(méi)有充滿整個(gè)屏幕,而是一個(gè)普普通通的塊級(jí)元素(大家可以修改width和height屬性看效果)。我們知道,body的父視圖是html,那么html還會(huì)有一個(gè)父視圖,這個(gè)父視圖是什么呢? 是window!也是瀏覽器中的根元素!這個(gè)元素的實(shí)例即為window對(duì)象(尺寸為window.innerWidthwindow.innerHeight,可以監(jiān)聽resize事件等等)。那么document是什么呢?document雖然是整個(gè)DOM結(jié)構(gòu)的根節(jié)點(diǎn),但是document并不是顯示元素,所以與view hierarchy無(wú)關(guān)。

結(jié)論:顯示元素中,根元素不是html,是window。不過(guò)我們只會(huì)在body下創(chuàng)建子元素。瀏覽器的view hierarchy一直是這樣的:

window

html

body

custom view

2. windowhtmlbody的overflow屬性

window像其他元素一樣,是具有overflow屬性的。window的overflow屬性只有兩個(gè)值:hiddenscrollwindow的overflow屬性取決于html和body的overflow屬性,并且window可能改變html和body的overfow屬性,很神奇吧。 規(guī)則如下:

window會(huì)首先查找html的overflow屬性。如果html的overflow為scroll或者h(yuǎn)idden,則據(jù)為己用,html的實(shí)際overflow效果則變?yōu)関isible。

當(dāng)html設(shè)置visible時(shí),window則會(huì)查找body的overflow屬性,與html一樣,如果為scroll或者h(yuǎn)idden,則據(jù)為己用,此時(shí)body的實(shí)際overflow效果變?yōu)関isible。

當(dāng)html和body均設(shè)為visible時(shí),window不找他們倆的麻煩了,自己默默設(shè)定為scroll。這也是默認(rèn)的情況。

結(jié)論:

html不論overflow設(shè)置什么,最終效果均為visible。

html為hidden或scroll時(shí),window的overflow取決于html;

html為visible時(shí),body不論overflow設(shè)置什么,最終效果均為visible。

html為visible,body為hidden或scroll時(shí),window的overflow取決于body的overflow

html為visible,body為visible時(shí),window為scroll

3. windowhtmlbody的background屬性

同overflow,window也具有background屬性。window的background屬性取決于html和body,并且會(huì)影響html和body。 結(jié)論如下:

html只要設(shè)置了background(即background不為transparent),window會(huì)將html的background據(jù)為己用,而html的background則變?yōu)閠ransparent。

html為transparent時(shí),只要body只要設(shè)置了background(即background不為transparent),window的background會(huì)將body的transparent據(jù)為己用,而body的background則變?yōu)閠ransparent。

html和body的background都為transparent時(shí),window的background為瀏覽器默認(rèn)的顏色(白色),這也是默認(rèn)的情況。

歡迎大家交流討論,直接留言或郵箱linchen.1987@foxmail.com

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/49572.html

相關(guān)文章

  • 知識(shí)解讀:JS屬性scrollTop clientHeight scrollHeight

      現(xiàn)在關(guān)于講述scrollTop、clientHeight、 scrollHeight 的內(nèi)容講的都不深,這篇文章就深入了解下。這篇文章主要給大家講述下這些概念的理解,并總結(jié)了這些概念彼此之間的數(shù)量關(guān)系和應(yīng)用場(chǎng)景。  1.clientWidth、clientHeight、clientLeft、clientTop  1.1 clientWidth  (1)含義:只讀屬性,表示元素的內(nèi)部寬度,單位為...

    3403771864 評(píng)論0 收藏0
  • Vue編程三部曲之模型樹優(yōu)化實(shí)戰(zhàn)代碼

      實(shí)踐是所有展示最好的方法,因此我覺(jué)得可以不必十分細(xì)致的,但我們的展示卻是整體的流程、輸入和輸出。現(xiàn)在我們就看看Vue 的指令、內(nèi)置組件等。也就是第二篇,模型樹優(yōu)化。  分析了 Vue 編譯三部曲的第一步,「如何將 template 編譯成 AST ?」上一篇已經(jīng)介紹,但我們還是來(lái)總結(jié)回顧下,parse 的目的是將開發(fā)者寫的 template 模板字符串轉(zhuǎn)換成抽象語(yǔ)法樹 AST ,AST 就這里...

    3403771864 評(píng)論0 收藏0
  • Python xpath,JsonPath,bs4基本使用方法

      小編寫這篇文章的一個(gè)主要目的,主要是來(lái)給大家去做一個(gè)介紹,介紹的內(nèi)容主要是關(guān)于Python的一些知識(shí),其中的內(nèi)容包含有xpath,JsonPath,bs4等一些知識(shí),主要是去介紹他們的一些基本使用方法,具體的內(nèi)容,下面就給大家詳細(xì)解答下。  1.xpath  1.1 xpath使用  google提前安裝xpath插件,按ctrl+shift+x出現(xiàn)小黑框  安裝lxml庫(kù)pip instal...

    89542767 評(píng)論0 收藏0
  • html常用標(biāo)簽整理

    摘要:主要通過(guò)樣式為其賦予不同的表現(xiàn)標(biāo)簽用來(lái)定義內(nèi)聯(lián)行內(nèi)元素,并無(wú)實(shí)際的意義。html文檔結(jié)構(gòu) 1 DOCTYPE html> 2 <html lang="zh-CN"> #這個(gè)lang表示語(yǔ)言,zh-CN中文的意思,整個(gè)文檔的內(nèi)容以中文為主,如果以英文為主,就寫成lang=en 3 4 <head> 5 <meta charset...

    番茄西紅柿 評(píng)論0 收藏0
  • web前端(10)—— 浮動(dòng),清除默認(rèn)樣式

    如果在一行內(nèi)寫文字,文字過(guò)多,那么瀏覽器會(huì)自動(dòng)換行去顯示我們的文字文檔流還有其他現(xiàn)象底部對(duì)齊,高矮不管文字還有圖片大小不一,都會(huì)讓我們頁(yè)面的元素出現(xiàn)高矮不齊的現(xiàn)象,但是在瀏覽器查看我們的頁(yè)面總會(huì)發(fā)現(xiàn)底邊對(duì)齊例:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>t...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<