到底生成render樹的過程,是為每個(gè)DOM元素查找匹配的selector,還是為每個(gè)selector查找匹配的DOM元素呢?
如題,前半部分說的是“對于每個(gè) DOM 元素,必須在所有 Style Rules 中找到符合的 selector 并將對應(yīng)的規(guī)則進(jìn)行合并。”, 后半部分的例子說的是解析selector然后找到匹配的DOM元素
4.如果正向解析,例如「div div p em」,我們首先就要檢查當(dāng)前元素到 html 的整條路徑,找到最上層的 div,再往下找,如果遇到不匹配就必須回到最上層那個(gè) div,往下再去匹配選擇器中的第一個(gè) div,回溯若干次才能確定匹配與否,效率很低。
不太明白
2020-03-30
出教程的人把瀏覽器的生成cssom和jquery的根據(jù)選擇器獲取對應(yīng)元素的兩個(gè)概念搞混了,白費(fèi)我一上午
2018-08-01
應(yīng)該是
為每個(gè)selector查找匹配的DOM元素
,例如「div div p em」,我們首先就要檢查當(dāng)前元素到 html 的整條路徑,找到最上層的 div,再往下找,如果遇到不匹配就必須回到最上層那個(gè) div,往下再去匹配選擇器中的第一個(gè) div,這里的div是指selector中的div
2016-10-24
文字說了
選擇器的「解析」實(shí)際是在這里執(zhí)行的,在遍歷 DOM Tree 時(shí),從 Style Rules 中去尋找對應(yīng)的 selector。
后面從selector到 dom 只是一種解釋方法。 告訴 這種規(guī)則 是從右到左的。
2015-05-17
正常查找的過程是逆向,簡單的理解就是先“關(guān)鍵詞搜索”,再在“搜索到的結(jié)果”(減少了好多不符合的判斷)中進(jìn)行查找匹配——回溯。。。。