为了账号安全,请及时绑定邮箱和手机立即绑定

到底生成render树的过程,是为每个DOM元素查找匹配的selector,还是为每个selector查找匹配的DOM元素呢?

如题,前半部分说的是“对于每个 DOM 元素,必须在所有 Style Rules 中找到符合的 selector 并将对应的规则进行合并。”, 后半部分的例子说的是解析selector然后找到匹配的DOM元素



4.如果正向解析,例如「div div p em」,我们首先就要检查当前元素到 html 的整条路径,找到最上层的 div,再往下找,如果遇到不匹配就必须回到最上层那个 div,往下再去匹配选择器中的第一个 div,回溯若干次才能确定匹配与否,效率很低。


不太明白

正在回答

4 回答

出教程的人把浏览器的生成cssom和jquery的根据选择器获取对应元素的两个概念搞混了,白费我一上午

0 回复 有任何疑惑可以回复我~

应该是

为每个selector查找匹配的DOM元素

,例如「div div p em」,我们首先就要检查当前元素到 html 的整条路径,找到最上层的 div,再往下找,如果遇到不匹配就必须回到最上层那个 div,往下再去匹配选择器中的第一个 div,这里的div是指selector中的div

0 回复 有任何疑惑可以回复我~

文字说了

选择器的「解析」实际是在这里执行的,在遍历 DOM Tree 时,从 Style Rules 中去寻找对应的 selector。

后面从selector到 dom 只是一种解释方法。 告诉 这种规则 是从右到左的。

0 回复 有任何疑惑可以回复我~

正常查找的过程是逆向,简单的理解就是先“关键词搜索”,再在“搜索到的结果”(减少了好多不符合的判断)中进行查找匹配——回溯。。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

到底生成render树的过程,是为每个DOM元素查找匹配的selector,还是为每个selector查找匹配的DOM元素呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信