Ответ 1
Почему мой textarea выше, чем его сосед?
Это не так.
Позвольте мне объяснить.
Сначала немного фона:
Элементы span
и textarea
(по умолчанию) встроенные элементы.
Браузеры обычно предоставляют немного пробелов под встроенными элементами для descenders.
Чтобы понять descenders...
Посмотрите на эту строку текста. Обратите внимание, что нет букв, которые нарушают базовую линию.
Теперь рассмотрим следующее предложение:
Просто пересекая мост, он, вероятно, ушел.
Обратите внимание на буквы "y", "j", "p" и "g". Эти буквы нарушают baseline и известны в типографии как " спусковые".
[
Источник: Wikipedia.org
Разница, которую вы видите, - это не маржа или отступы, а просто браузер, предоставляющий комнату для размещения этих строчных букв. Короче говоря, это называется выравнивание базовой линии.
Линия, на которой большинство букв "сидят" и ниже которых расширяются ограничители.
[
Источник: Wikipedia.org
Итак, почему кто-нибудь может спросить, предоставляет ли браузер это пространство для textarea
, img
, input
и других встроенных элементов, которым не нужно пространство для descenders?
Поскольку браузер настраивается на то, что вы можете иметь текст до или после одного из этих элементов в одной строке.
Теперь, к вашему изображению и коду...
На первый взгляд ясно, что textarea
выше, чем элемент span
. Но если вы посмотрите подробнее...
... вы увидите, что они полностью выровнены. Оба span
и textarea
предоставляют пространство для descenders.
Добавленные границы вносят вклад в появление несоосности, поскольку граница textarea
обертывает четко очерченную рамку, исключая пространство descender, но граница span
обтекает текст и пространство дескриптора. Если вы удалите красную рамку, смещение будет менее выраженным.
В терминах решения есть два варианта:
- Добавьте
vertical-align: bottom
в правилоtextarea
, OR - Добавьте
display: block
в правилоtextarea
.