DOM 与 CSSOM 合并成一个渲染树
来源:4-8 css和js的装载与执行-实战-验证css加载不会阻塞后面的 js 并发加载

慕粉18380451249
2018-09-25
老师,您好! 请教个问题:DOM 与 CSSOM 合并成一个渲染树,才能在浏览器里显示, 为何cssom没有生成,dom结构已经渲染到浏览器页面里了。
关键渲染路径”的步骤:
- 处理 HTML 标记并构建 DOM 树。
- 处理 CSS 标记并构建 CSSOM 树。
- 将 DOM 与 CSSOM 合并成一个渲染树。
- 根据渲染树来布局。
- 将各个节点绘制到屏幕上。
写回答
2回答
-
你这边的渲染到浏览器里面是指?
正常的渲染流程和你这边说的五点是一样的,根据这样的步骤,元素会被绘制到页面上。
css一般在header中,同时inline的style在html解析的时候,也会被解析用于生成css树。
所以这样的话,dom结构被渲染到达浏览器页面里的时候,这些css rule都已经生成css树并且作用于渲染树上,已经生效了。
我理解又一种case是,css的样式是后续动态加载进来了,或者是javascript脚本动态加载进来了,所以第一次在解析html生成dom树,并且生成渲染树的时候,因为css的规则还没有被加入到渲染逻辑中,所以这时候生成的渲染树是不具有这些后续动态加载的css规则的。如果后续动态加载了一些css规则进来,css rule tree会更新,渲染树也会更新,并触发页面的图层重新合成,页面重新渲染。
所以cssom一定是生成了,只不过可能没有内容。后续有了新的css规则之后,对于cssom进行的就是更新。
212018-10-29 -
千迦
2018-09-25
同学你的问题我看到了,稍后进行回复
00
相似问题