LibWeb: Specify height as 1lh to fix the size of empty text boxes

Previously, empty text boxes would fall back to the min-height: 16px
set on the <input> element. As soon as there is any content they
would usually gain height because the line height of that text is
more than 16px (depending on the font/font-size used).

Now they use height: 1lh for the inner div (which contains the
actual text), which matches the exact height of 1 line of content.
This commit is contained in:
Simon Wanner 2023-03-18 17:54:06 +01:00 committed by Andreas Kling
parent a5a3913e39
commit a13c21c807
Notes: sideshowbarker 2024-07-18 03:23:00 +09:00

View File

@ -394,7 +394,7 @@ void HTMLInputElement::create_shadow_tree_if_needed()
if (initial_value.is_null())
initial_value = DeprecatedString::empty();
auto element = document().create_element(HTML::TagNames::div).release_value();
MUST(element->set_attribute(HTML::AttributeNames::style, "white-space: pre; padding-top: 1px; padding-bottom: 1px; padding-left: 2px; padding-right: 2px"));
MUST(element->set_attribute(HTML::AttributeNames::style, "white-space: pre; padding-top: 1px; padding-bottom: 1px; padding-left: 2px; padding-right: 2px; height: 1lh;"));
m_text_node = heap().allocate<DOM::Text>(realm(), document(), initial_value).release_allocated_value_but_fixme_should_propagate_errors();
m_text_node->set_always_editable(m_type != TypeAttributeState::FileUpload);
m_text_node->set_owner_input_element({}, *this);