mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-11 05:25:32 +03:00
LibWeb: When collapsing margins, consider border box heights
Empty boxes should be fully collapsed, but a box with border and/or padding is not empty. This fixes an issue where <hr> elements were getting weirdly collapsed since they have zero content height (but some border height.)
This commit is contained in:
parent
5116b94114
commit
bf3772362a
Notes:
sideshowbarker
2024-07-19 00:12:54 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/bf3772362a7
@ -548,7 +548,7 @@ void BlockFormattingContext::place_block_level_non_replaced_element_in_normal_fl
|
||||
while (relevant_sibling != nullptr) {
|
||||
if (!relevant_sibling->is_absolutely_positioned() && !relevant_sibling->is_floating()) {
|
||||
collapsed_bottom_margin_of_preceding_siblings = max(collapsed_bottom_margin_of_preceding_siblings, relevant_sibling->box_model().margin.bottom);
|
||||
if (relevant_sibling->height() > 0)
|
||||
if (relevant_sibling->border_box_height() > 0)
|
||||
break;
|
||||
}
|
||||
relevant_sibling = relevant_sibling->previous_sibling();
|
||||
|
@ -58,6 +58,12 @@ public:
|
||||
return width() + border_box.left + border_box.right;
|
||||
}
|
||||
|
||||
float border_box_height() const
|
||||
{
|
||||
auto border_box = box_model().border_box();
|
||||
return height() + border_box.top + border_box.bottom;
|
||||
}
|
||||
|
||||
Gfx::FloatRect content_box_as_relative_rect() const
|
||||
{
|
||||
return { m_offset, m_size };
|
||||
|
Loading…
Reference in New Issue
Block a user