渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

news2024/11/26 5:45:51

在上篇文章中,我们介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。

这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析为浏览器可以理解的 DOM;然后根据 CSS 样式表,计算出 DOM 树所有节点的样式;接着又计算每个元素的几何坐标位置,并将这些信息保存在布局树中。

分层

现在我们有了布局树,而且每个元素的具体位置信息都计算出来了,那么接下来是不是就要开始着手绘制页面了?

答案依然是否定的。

因为页面中有很多复杂的效果,如一些复杂的 3D 变换、页面滚动,或者使用 z-indexing 做 z 轴排序等,为了更加方便地实现这些效果,渲染引擎还需要为特定的节点生成专用的图层,并生成一棵对应的图层树(LayerTree)。如果你熟悉 PS,相信你会很容易理解图层的概念,正是这些图层叠加在一起构成了最终的页面图像。

要想直观地理解什么是图层,你可以打开 Chrome 的“开发者工具”,选择“Layers”标签,就可以可视化页面的分层情况,如下图所示:

从上图可以看出,渲染引擎给页面分了很多图层,这些图层按照一定顺序叠加在一起,就形成了最终的页面,你可以参考下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA8~17新特性

目录 一、前言 二、JAVA8 Lambda表达式 Stream API 创建方式 中间操作 终止操作 Optional类 三、JAVA9 模块机制 JShell交互式编程 接口 新增集合工厂方法 四、JAVA10 局部变量类型判断 五、JAVA11 Lambda表达式补充 String方法的补充 全新的HttpClient 使用 …

前端理解的HTTP缓存(作用、缓存策略、缓存控制机制、应用)

一、HTTP缓存有什么作用? 缓存是为了重复使用而被存储的,可以减少浏览器和服务器之间通信的次数、降低网络延迟、加速页面加载、提高用户体验性等。不但能使网页打开速度更快,还能减少服务器的压力。 二、 浏览器的缓存策略有哪些&#xff1…

关于SpringBoot、Nginx 请求参数包含 [] 特殊符号 返回400状态

问题来源: 使用RESTful风格发送带有特殊符号(如:点、大括号等)的请求,当使用Nginx做地址映射时会返回报"HTTP Status 400-Bad Request"的错误,这个时候我们需要对Nginx的映射方式做一下调整。 Nginx调整完发现跳转后又报…

Day42: 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机 思路 122.买卖股票的最佳时机II 思路 121. 买卖股票的最佳时机 121. 买卖股票的最佳时机 - 力扣(LeetCode) 思路 1. 确定dp数组及其下标含义 dp[i][0] 表示第i天持有股票所得最多现金 dp[i][1] 表示第i天不持…

爷孙或者更深组件间传值

如图写法即可 父: provide() {return {errorMessage: this.refTable,}},子: inject: [errorMessage],

组合模式:构建树形结构的灵活设计

组合模式是一种结构型设计模式,它允许我们将对象组合成树形结构,以表示“部分-整体”的层次结构。本文将深入探讨组合模式的原理、结构和使用方法,并通过详细的 Java 示例代码来说明。 1. 组合模式的定义 组合模式是一种将对象组合成树形结…

Maven引入Jacoco插件后无法生成jacoco.exec执行文件

目录 jacoco.exec网上常见关于未生成jacoco.exec原因最终解决方案不生效原因解决方案 完整jacoco插件配置 jacoco.exec 执行数据文件,只有生成该文件,才表示引入插件jacoco成功生效 网上常见关于未生成jacoco.exec原因 网上找了一下解决方式基本都是…

windows下使用arp 协议

/ //自动扫描局域网存活主机 本程序是利用arp协议去获取局域网中的存活主机 arp协议概述 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请…

「Paraverse平行云」入选IDC MarketScape中国实时云渲染解决方案

近日,全球领先的IT研究与咨询顾问机构IDC发布了《IDC MarketScape:中国实时云渲染解决方案2023年厂商评估》报告。作为在实时云渲染技术领域具有代表性的技术提供商,「Paraverse平行云」成功入选报告。 IDC报告通过综合考量厂商在产品、市场…

一文搞懂Goroutine之间的通信Channel

文章目录 Channel定义通道初始化通道通道的操作1、发送/接收2、关闭 多返回值模式for range获取通道值 单向通道selectgoroutine、channel案例 道阻且长,行则将至,行而不辍,未来可期🌟。人生是一条且漫长且充满荆棘的道路&#xf…

C++函数cincout的基本用法

C的输入输出格式可比C语言的简单得多&#xff0c;输入函数是cin()&#xff0c;输出函数是cout。 首先是cin的基本用法如下 (假设n 5) #include <iostream> using namespace std; int main() {int n;cin>>n;return 0; } 而它的结果则是 cin不仅可以输入int类型…

从单目数据生成3D模型,Meta智能眼镜摄像头校正算法揭秘

众所周知&#xff0c;Meta下一个目标就是AR眼镜&#xff0c;尽管开发AR比VR面临更多复杂的难题&#xff0c;因此可能还要过一段时间才能看到Meta的AR眼镜。目前&#xff0c;该公司已推出了第一代Ray-Ban Stories智能眼镜&#xff0c;特点是搭载的双摄像头不仅可以拍照&#xff…

Verilog基础之十五、锁存器实现

目录 一、前言 二、工程设计 2.1 工程代码 2.2 综合结果 2.3 Latch实现 一、前言 在之前的文章中介绍过寄存器&#xff0c;本节介绍一个类似的逻辑单元&#xff1a;锁存器。在大部分的资料和文章介绍中&#xff0c;都是告诉读者设计中应尽量避免出现锁存器&#xff0c;这主…

从0到1,带你深入了解react fiber

react16之后&#xff0c;react引入了fiber架构&#xff0c;那么它究竟是什么&#xff0c;如何实现的呢&#xff1f;下面就让笔者带你掰扯掰扯&#xff0c;如有错误&#xff0c;欢迎指正 目录 渲染过程 react15 react16 为什么要引入fiber 不可中断原因 fiber详解 是什么…

百度墨斗鱼文库创作中心源码分析

前言 公司解散&#xff0c;待业中&#xff0c;耗时一天研究了一下百度墨斗鱼文库创作中心源码。实现了后台自动完成任务并通知。 下面主要分析一下实现思路和难点 一&#xff0c;实现思路 调用接口查询未回答的题目列表 合并多个tab下的题目 设置黑白名单&#xff0c;这里…

你知道为什么不用XFP光模块了吗?

在光纤通信应用领域中&#xff0c;10G光模块凭借着较低的成本和功耗被广泛应用于学校、企业等应用场景中。XFP和SFP是10G光模块常见的两种封装类型&#xff0c;那为什么现在市场上XFP光模块应用比较少了呢&#xff1f;下面我们来简单分析一下原因。 一、XFP与SFP光模块的概述 …

从小白到大神之路之学习运维第58天--------Firewalld防火墙

第三阶段基础 时 间&#xff1a;2023年7月12日 参加人&#xff1a;全班人员 内 容&#xff1a; Firewalld防火墙 目录 Firewalld防火墙 一、防火墙 1、netfilter和防火墙管理工具 2、防火墙配置模式 3、Firewalld数据流处理的方式 4、firewalld区域类型 1&#x…

【SVN wc.db 删除不掉的问题】

SVN wc.db 删除不掉的问题 方案1&#xff1a;任务管理器 >性能 >打开资源监视器 > CPU >搜索句柄&#xff0c;关闭相关线程&#xff0c;重试删除。若删除explorer.exe导致资源管理器不显示&#xff0c;在任务管理器新建该任务即可“explorer.exe” 方案2&#xff1…

2023-07-12:RocketMQ如何做到消息不丢失?

2023-07-12&#xff1a;RocketMQ如何做到消息不丢失&#xff1f; 答案2023-07-12&#xff1a; RocketMQ通过刷盘机制、消息拉取机制和ACK机制等多种方式来确保消息投递的可靠性&#xff0c;防止消息丢失。 1.刷盘机制 RocketMQ中的消息分为内存消息和磁盘消息&#xff0c;内…

Acwing.858 Prim算法求最小生成树(朴素Prims算法)

题目 给定一个n个点m条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。求最小生成树的树边权重之和&#xff0c;如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G(V,E)&#xff0c;其中V表示图中点的集合&#xff0c;E表示图中边的…