LibWeb: Some improvements to absolute positioning

Absolutely positioned blocks now register themselves with their
containing block (and note that the containing block of an absolutely
positioned box is the nearest non-statically positioned block ancestor
or the ICB as fallback.)

Containing blocks then drive the layout of their tracked absolutely
positioned descendants as a separate layout pass.

This is very far from perfect but the general direction seems good.
This commit is contained in:
Andreas Kling
2020-06-12 13:27:28 +02:00
parent ff2c949d70
commit 260427f0ad
8 changed files with 166 additions and 24 deletions

View File

@@ -54,6 +54,8 @@ public:
};
PixelBox full_margin(const LayoutNode&) const;
PixelBox padding_box(const LayoutNode&) const;
PixelBox border_box(const LayoutNode&) const;
private:
LengthBox m_margin;