mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:48:10 +00:00
LibWeb: Treat cyclic percentage max-size as "auto" on the flex container
This allows things like `max-width: 100%` to work on flex containers whose containing blocks themselves have automatic width.
This commit is contained in:
parent
f03f70a84a
commit
e65990f7a3
1 changed files with 18 additions and 5 deletions
|
@ -541,9 +541,15 @@ void FlexFormattingContext::determine_available_main_and_cross_space(bool& main_
|
|||
main_available_space = specified_main_size(flex_container());
|
||||
} else {
|
||||
if (has_main_max_size(flex_container())) {
|
||||
main_max_size = specified_main_max_size(flex_container());
|
||||
main_available_space = main_max_size;
|
||||
main_is_constrained = true;
|
||||
bool main_max_size_behaves_like_auto = false;
|
||||
if (computed_main_max_size(flex_container()).is_percentage())
|
||||
main_max_size_behaves_like_auto = !has_definite_main_size(*flex_container().containing_block());
|
||||
|
||||
if (!main_max_size_behaves_like_auto) {
|
||||
main_max_size = specified_main_max_size(flex_container());
|
||||
main_available_space = main_max_size;
|
||||
main_is_constrained = true;
|
||||
}
|
||||
}
|
||||
if (has_main_min_size(flex_container())) {
|
||||
main_min_size = specified_main_min_size(flex_container());
|
||||
|
@ -567,8 +573,15 @@ void FlexFormattingContext::determine_available_main_and_cross_space(bool& main_
|
|||
cross_available_space = specified_cross_size(flex_container());
|
||||
} else {
|
||||
if (has_cross_max_size(flex_container())) {
|
||||
cross_max_size = specified_cross_max_size(flex_container());
|
||||
cross_is_constrained = true;
|
||||
|
||||
bool cross_max_size_behaves_like_auto = false;
|
||||
if (computed_cross_max_size(flex_container()).is_percentage())
|
||||
cross_max_size_behaves_like_auto = !has_definite_cross_size(*flex_container().containing_block());
|
||||
|
||||
if (!cross_max_size_behaves_like_auto) {
|
||||
cross_max_size = specified_cross_max_size(flex_container());
|
||||
cross_is_constrained = true;
|
||||
}
|
||||
}
|
||||
if (has_cross_min_size(flex_container())) {
|
||||
cross_min_size = specified_cross_min_size(flex_container());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue