https://browser.engineering/layout.html
Laying Out Pages
Chapter 5 of Web Browser Engineering. <
* The layout tree
* Layout modes
* Size and position
* Using tree-based layout
* Backgrounds
* Summary
* Exercises
So far, layout has been a linear process that handles open tags and
and close tags independently. But web pages are trees, and look like
them: borders and backgrounds visually nest inside one another. To
support that, this chapter switches to tree-based layout, where the
tree of elements is transformed into a tree of layout objects for the
visual elements of the page. In the process, we'll make our web pages
more colorful with backgrounds.
* The layout tree
* Layout modes
* Size and position
* Using tree-based layout
* Backgrounds
* Summary
* Exercises
The layout tree
Right now, our browser lays out an element's open and close tags
separately. Both tags modify global state, like the cursor_x and
cursor_y variables, but they aren't otherwise connected, and
information about the element as a whole, like its width and height,
is never computed. That makes it pretty hard to draw a background
color behind text. So web browsers structure layout differently.
In a browser, layout is about producing a layout tree, whose nodes
are layout objects, each associated with an HTML element,Elements
like