【浏览器渲染原理】布局之Dirty位系统
来源:互联网 发布:遗精频繁怎么办 知乎 编辑:程序博客网 时间:2024/06/05 10:02
渲染器在创建完成并添加到渲染树时,并不包含位置和大小信息。计算这些值的过程称为布局或重排。
HTML采用基于文档流的布局模型,按先后顺序进行解析。处于流中靠后位置元素通常不会影响靠前位置元素的几何特征,因此布局可以按从左至右、从上至下的顺序遍历文档。除绝对定位、固定定位和浮动元素之外,任何元素将默认为流布局模式。
坐标系是相对于根框架(顶层框架)而建立的,使用的是上坐标和左坐标。
布局是一个递归的过程。它从根呈现器(<html>)开始,然后递归遍历部分或所有的框架层次结构,为每一个需要计算的渲染器计算几何信息。
根渲染器的位置左边是0,0,其尺寸为视口(浏览器窗口的可见区域)。
所有的渲染器都有一个layout或reflow方法,每一个渲染器都会调用其需要进行布局的子代的layout方法。
为避免对所有细小更改都进行整体布局,浏览器采用了一种“dirty位”系统。如果某个渲染器发生了更改,或者将自身及其子代标注为“dirty”,则需要进行布局。
标记分为:“dirty”和“children are dirty”。“children are dirty”表示尽管呈现器自身没有变化,但它至少有一个子代需要布局。
【参考资料】
1 浏览器的工作原理
0 0
- 【浏览器渲染原理】布局之Dirty位系统
- 【浏览器渲染原理】布局之布局处理
- 【浏览器渲染原理】布局之优化
- 【浏览器渲染原理】布局之全局布局和增量布局
- 【浏览器渲染原理】布局之异步布局和同步布局
- 浏览器工作原理之基本渲染流程
- 【浏览器渲染原理】渲染树构建之样式计算
- 【浏览器渲染原理】渲染树构建之渐进式处理
- 浏览器渲染原理
- 浏览器渲染原理
- 浏览器渲染原理简介
- 浏览器渲染原理
- 浏览器渲染原理
- 【转载】浏览器渲染原理
- 浏览器渲染原理
- 浏览器渲染原理
- 浏览器渲染原理
- 浏览器渲染原理
- Python 正则表达式限定文本行数最多5行
- MacPorts介绍
- equal(),hashcode(),toString()方法的作用
- redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--可以做第三方锁使用
- hdu 2044 一只小蜜蜂...
- 【浏览器渲染原理】布局之Dirty位系统
- php调用python
- c++ stl Function Objects 函数对象
- Lining Up-多点共线问题
- android中Bitmap和Drawable相互装换
- IT企业文化の阿里巴巴
- 013_C语言结构体和类型别名的应用
- 【HDU】3861 The King’s Problem 强连通缩点+有向图最小路径覆盖
- Centos 6.5下SNMP简单配置(snmp protocol v3,监控宝)