32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
Visual formatting model implementation.
|
|
See https://www.w3.org/TR/CSS22/visuren.html for more information.
|
|
|
|
WebCore
|
|
1. recursive layout
|
|
2. layout logic lives in the renderers mixing block with inline etc.
|
|
3. No clear separation of logic and state.
|
|
|
|
LayoutReloaded
|
|
1. Iterative layout within a formatting context, recursive across nested formatting contexts
|
|
2. Formatting context is responsible for computing size/positions for all the boxes that live in the
|
|
context including in/out-of-flow and floating boxes
|
|
3. Layout state is stored in dedicated FormattingState objects.
|
|
3. Initial containing block creates the top level (initial) block formatting context
|
|
4. Floats are resitriced to their formatting contexts.
|
|
5. Boxes, including inline tree are generated while laying out the content. LayoutTree -> BoxTree.
|
|
|
|
Instructions:
|
|
1. apply ./misc/LayoutReloadedWebKit.patch
|
|
2. compile WebKit
|
|
3. load ./test/index.html
|
|
|
|
Partially done:
|
|
Block formatting context:
|
|
- static, relative and out of flow positioning
|
|
- margin collapsing
|
|
- floats
|
|
|
|
Missing:
|
|
- Inline formatting context
|
|
- Everything else
|