mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 19:07:35 +00:00
LibHTML: Expand the "padding" shorthand property
This expands in the same way as "margin".
This commit is contained in:
parent
b08de46480
commit
040fee370d
1 changed files with 46 additions and 0 deletions
|
@ -164,6 +164,52 @@ static void set_property_expanding_shorthands(StyleProperties& style, CSS::Prope
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (property_id == CSS::PropertyID::Padding) {
|
||||||
|
if (value.is_length()) {
|
||||||
|
style.set_property(CSS::PropertyID::PaddingTop, value);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingRight, value);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingBottom, value);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingLeft, value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (value.is_string()) {
|
||||||
|
auto parts = split_on_whitespace(value.to_string());
|
||||||
|
if (parts.size() == 2) {
|
||||||
|
auto vertical = parse_css_value(parts[0]);
|
||||||
|
auto horizontal = parse_css_value(parts[1]);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingTop, vertical);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingBottom, vertical);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingLeft, horizontal);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingRight, horizontal);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (parts.size() == 3) {
|
||||||
|
auto top = parse_css_value(parts[0]);
|
||||||
|
auto horizontal = parse_css_value(parts[1]);
|
||||||
|
auto bottom = parse_css_value(parts[2]);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingTop, top);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingBottom, bottom);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingLeft, horizontal);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingRight, horizontal);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (parts.size() == 4) {
|
||||||
|
auto top = parse_css_value(parts[0]);
|
||||||
|
auto right = parse_css_value(parts[1]);
|
||||||
|
auto bottom = parse_css_value(parts[2]);
|
||||||
|
auto left = parse_css_value(parts[3]);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingTop, top);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingBottom, bottom);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingLeft, left);
|
||||||
|
style.set_property(CSS::PropertyID::PaddingRight, right);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dbg() << "Unsure what to do with CSS padding value '" << value.to_string() << "'";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
style.set_property(property_id, value);
|
style.set_property(property_id, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue