1.5. 渲染

1.5.1. 简介

渲染引擎解析 HTML 文档,并将各标记逐个转化成 DOM 节点。同时也会解析外部 CSS 文件以及样式元素中的样式数据。

1.5.2. Render树

  • Render树包含若干带有颜色、面积等可视化属性的矩形

  • 矩形按照在屏幕上展现的顺序排列

  • 并不是所有DOM树的节点都有对应的Render树,不可见元素就没有在Render树中

1.5.3. 构建流程

  • 根节点在处理HTML中的body标签时构建,其余部分随DOM节点插入而构建

  • 样式计算:计算每一个渲染对象的可视化属性
    • 按照连接序应用样式规则

    • 继承规则

    • 赋默认值

  • 根据目标媒介,生成渲染对象
    • 屏幕:visual flow 模型

    • 可打印设备:page 模型

    • 语音渲染设备:aural rendering 模型

1.5.4. 布局过程

  • 赋予每一个Render树节点在屏幕中出现的准确坐标

  • 采用流模型(从左到右 从上到下)

  • 坐标系的原点在左上

  • 采用全局和增量式布局
    • 全局样式改变影响局部渲染

    • 变化的矩形被重新布局