浏览器工作原理,动手码一个简易浏览器(3):元素布局(layout)和渲染(render)

本文深入探讨了浏览器的工作原理,通过动手实践构建一个简易浏览器,重点解析了元素布局(包括flex布局的实现,如主轴和交叉轴的计算)和渲染(包括绘制单个元素及整个DOM树的步骤)。在布局部分,详细阐述了如何根据浏览器属性排版,以及如何计算元素的主轴和交叉轴尺寸。在渲染部分,介绍了如何在图形环境中绘制元素,并递归绘制DOM树。
摘要由CSDN通过智能技术生成

1. 本节代码

本节代码,git仓库地址

2.布局

2.1 根据浏览器属性进行排版

简易浏览器只实现 flex 布局

2.2 收集元素进行(row)

  1. 判断布局元素是否设置了主轴尺寸mainSize,未设置mainSize则计算该值,并将该布局元素标记为自动大小isAutoMainSize
  2. 遍历布局元素的非文本结点子元素,将元素装入对应的行flexLine

2.3 主轴方向的计算

主轴方向的计算,找出行中所有设置了flex样式属性的元素,将主轴剩余空间按比例均分给这些元素,若剩余空间为负,所有flex元素主轴方向尺寸为0,等比压缩其它剩余元素

2.4 交叉轴方向的计算

交叉轴方向的计算,根据每一行中最大元素交叉轴尺寸crossSize获取到行高,然后根据行高、flex-alignitem-align,确定元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值