Ваш div должен содержать как минимум один символ (например, ).
Для текстовых полей: "vertical-align: baseline;"работает только для Gecko.
Как сказал developer.mozilla.org ,
Спецификация HTML не определяет, где находится базовая линия
Я нашел обходной путь для этого, но он меняет HTML.Я установил вертикальное выравнивание: text-top для текстовой области, и чтобы исправить зазор, вызванный высотой border-top и отступом верхней части текстовой области, я установил его как отрицательный margin-top.И чтобы текстовая область не перекрывала все элементы над ней, я поместил div вокруг текстовой области с отступом, чтобы уравновесить пробел.
HTML:
<div class="textarea-wrapper"><textarea id="b">nice vertical alignment</textarea></div>
CSS:
.textarea-wrapper {
display: inline-block;
padding-top: 1px; /* - margin-top of textarea */
}
.textarea-wrapper textarea {
vertical-align: text-top;
margin-top: -1px; /* - (border-top-width + padding-top) */
}
Я обновил jsFiddle .