我试图理解非常基本的浏览器布局逻辑,但我很难将即使在非常高的水平上也准确的东西放在一起,只是描述内联元素、块元素和浮动。我看到几篇文章中使用的短语,如“正常流程”,没有定义这些术语。所以我对布局逻辑做了一个非常简短、不完整的说明。有人可以确认它是否正确,或者即使在这个高级别也有错误?谢谢你的帮助!
- 获取下一个 html 元素。
- 如果是内联元素,转3。如果是块元素,转4。
- 将内联元素添加到当前内联元素堆栈。如果堆栈溢出可用的水平空间,写出一行。转到 1。
- 如果元素是浮动的,则转到 5,否则转到 6。
- 如果向左浮动,则添加到左侧浮动堆栈。如果浮动到右侧,则添加到右侧浮动堆栈。转到 1。
- 写出左浮动堆栈、内联元素堆栈和右浮动堆栈并开始新的一行。在末尾用新行写出块元素。转到 1。