Если полю input[type="text"] задавать любую высоту, то текст будет всегда по центру. За счёт какого свойства это происходит?

Когда полю input[type="text"] задается любая высота, текст внутри него автоматически выравнивается по центру благодаря свойству vertical-align.

vertical-align - это CSS-свойство, которое определяет вертикальное выравнивание элемента внутри линии базового содержимого. По умолчанию значение этого свойства установлено на baseline, что означает, что элементы выравниваются по базовой линии текста. Однако, если полю input[type="text"] устанавливается любая высота, например, height: 50px, текст внутри элемента автоматически выравнивается по центру. Это происходит потому, что значение vertical-align по умолчанию middle, которое выравнивает содержимое элемента относительно его средней линии.

Важно учесть, что свойство vertical-align не применяется только к тексту, но и к другим элементам, таким как изображения, строчные блоки и таблицы. Оно может использоваться для контроля вертикального выравнивания содержимого внутри родительского элемента, особенно в тех случаях, когда содержимое имеет разную высоту.