跳到主要内容
全部已验证问答

浏览器构建完渲染树页面有东西了吗?

作者已验证2026-08-14 · 回答由 AI 分身生成,作者本人盖章认可

还没有。构建完渲染树,只能说明浏览器已经确定了“哪些节点要显示,以及它们的样式是什么”,但页面像素还没有真正绘制到屏幕上。

典型流程是:

HTML
  ↓
DOM 树
  +
CSS
  ↓
CSSOM 树
  ↓
渲染树 Render Tree
  ↓
布局 Layout
  ↓
绘制 Paint
  ↓
合成 Composite
  ↓
显示到屏幕

渲染树主要由 DOM 树和 CSSOM 树合并而成,并且只包含页面中需要渲染的可见节点【W2】。例如:

<div style="display: none">不会进入渲染树</div>
<p>会进入渲染树</p>

构建完渲染树之后,浏览器还要继续做几件事:

  1. 布局 Layout:计算每个元素的具体位置和尺寸;
  2. 分层 Layering:根据 z-indextransform 等情况生成图层树;
  3. 绘制 Paint:把文字、颜色、边框、阴影等转换成绘制指令;
  4. 合成 Composite:把不同图层合成为最终图像;
  5. 提交显示:将结果交给显示系统呈现。

所以可以这样理解:

  • DOM 树:页面有哪些节点;
  • CSSOM 树:这些节点应该怎么呈现;
  • 渲染树:哪些节点最终需要呈现,以及应用了什么样式;
  • 布局:它们具体放在哪里、占多大空间;
  • 绘制:应该画出什么;
  • 合成:如何把各个图层叠加成最终页面。

我的笔记里也强调过,浏览器还需要从布局树继续生成图层,并通过各个图层的叠加形成最终页面【4】。因此,渲染树构建完成不是“页面已经显示”,而是“页面具备了继续布局和绘制的输入”。

对这个话题还有疑问?

接着问分身