代码HTML,CSS,JS怎么渲染成页面

渲染流程

当渲染进程从网络进程中获取到了文档之后,会进行资源解析及子资源加载。即进入渲染阶段,渲染阶段包含以下几个子阶段,每个阶段都有输入内容,处理过程,输出内容
在这里插入图片描述

构建DOM树

输入HTML文件,对HTML进行解析,输出树状结构的DOM树
在这里插入图片描述

样式计算

生成DOM树后,还不能知道DOM的形态,需要进行样式计算。
1,把CSS转换成浏览器理解的结构-styleSheets.
styleSheets里面包含三种来源的样式文件,

2,对属性值标准化操作
CSS中的一些属性浏览器引擎不能理解,需要对其进行标准化,例如,颜色需要转换为rgb类型,fount-size:1em,要转换成fount-size:16px.
在这里插入图片描述

3,计算出DOM树中每个节点的具体样式
上面2步已经有了CSS被浏览器引擎理解的结构,还需要计算出DOM的具体每个节点的样式。
这里就需要根据CSS的继承规则和层叠规则计算出DOM树的每个节点具体样式。

布局阶段

从上面阶段我们知道了DOM树和DOM树元素的具体样式,但是我们还不知道具体的DOM树可见元素的具体位置,所以我们需要对DOM树进行布局。
1,布局树创建
首先需要创建可见元素的布局树,例如;document,link,html,style这些不可见的元素不会包含在里面。
然后计算出布局树每个节点的具体位置。

分层

页面中有一些复杂的效果,如使用了z-index,动画,定位等属性效果,所以渲染引擎就给特定的节点生产相应大的图层,构成一个图层树,就如PS中的图层概念相似,最终是有多个图层叠加形成最终展示页面。

绘制

有了图层树,渲染引擎会把图层绘制拆分成多个小的绘制指令,组成绘制指令表

分块

有时页面视图窗口是变化的,每个图层会被分为很多小图块,当试图窗口变化的时候,窗口附件的小块会优先生成

栅格化

栅格化,是指将块图转化为位图,图块是栅格化的最小单位。

合成

当所有图块都被栅格化,合成线程会生成绘制图块的命令,然后将命令给浏览器进程,浏览器进程根据命令将页面绘制到内存中,最终显示在页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值