我在理解術(shù)語(yǔ)& quot方框& quot如CSS顯示3 1中所定義的,當(dāng)它屬于& quot盒子樹& quot或者& quot碎片樹& quot。我要求澄清這些方面。
簡(jiǎn)而言之,我目前的理解是:
一個(gè)所謂的盒樹反映了考慮了CSS和canvas之后的文檔樹;一框?qū)?yīng)(應(yīng)該對(duì)應(yīng)?)到一個(gè)元素。該盒樹然后用于渲染。
但是并不是所有的盒子都是盒子樹的一部分。
以下是我如何(模糊地)了解到這些術(shù)語(yǔ)的,混淆用粗體表示:
正如CSS Display 3 1中所定義的,盒子樹由盒子組成,并且是& quot中介結(jié)構(gòu)& quot"[表示]所呈現(xiàn)文檔(樹)的格式結(jié)構(gòu)& quot。
此外,& quot每個(gè)元素(...)生成由[its] display屬性指定的零個(gè)或多個(gè)框,其中一個(gè)將是元素的主體框。
CSS Inline 3 2提到還將生成一個(gè)根內(nèi)聯(lián)框(對(duì)于這個(gè)布局),我假設(shè)它是生成的主框,因此是框樹的一部分。
然后,它繼續(xù)解釋了行內(nèi)框(即行內(nèi)級(jí)內(nèi)容)可以被分割和拆分成多個(gè)行框。雖然根據(jù)CSS Inline 3 2.1,行盒不被認(rèn)為是盒樹的一部分,但顯然被命名為& quot方框& quot。
更具體地說(shuō),我把這一段理解為:
行框是& quot像多欄布局中的欄框& quot:碎片容器。
對(duì)我來(lái)說(shuō),這讀起來(lái)(通過(guò)擴(kuò)展)如下:碎片容器是盒子,但不是盒子樹的一部分,但再次明確命名為& quot方框& quot。(根據(jù)我的理解)這一段的解釋是唯一一個(gè)列框不被認(rèn)為是框樹的一部分的解釋。
我還被告知片段也不是盒子樹的一部分;這似乎很直觀,因?yàn)樗鼈兊拿Q不同。有人告訴我,它們是所謂片段樹的一部分。
為了學(xué)習(xí)更多關(guān)于片段樹的知識(shí),我發(fā)現(xiàn)W3 Minutes使用了& quot盒子樹& quot作為盒子樹和片斷樹的統(tǒng)稱,但是沒(méi)有發(fā)現(xiàn)提到& quot碎片樹& quot在CSS規(guī)范中。也許(東南)W3分鐘是錯(cuò)誤的搜索位置,因?yàn)槟挲g(也可能是因?yàn)榕cCSS胡迪尼?).
根據(jù)這個(gè)& quot有趣想法的集合& quot對(duì)于CSS Houdini的盒子樹API,一個(gè)盒子可以有零個(gè)或多個(gè)片段樹,這取決于片段(CSS Break 4)和偽元素。但是之前我認(rèn)為盒子樹和碎片樹是獨(dú)立的樹,但是根據(jù)這個(gè)他們是聯(lián)系在一起的。