Ответ 1
Попробуйте отобразить: блок в текстовом поле:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
textarea {display:block;}
</style>
</head>
<body>
<div style="background-color:#f09;">
<textarea></textarea>
</div>
</body>
</html>
Проблема заключается в том, что textarea является встроенным и использует высоту текста, чтобы добавить немного дополнительного дополнения. Вы также можете указать:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div style="background-color:#f09;line-height:0px;font-size:1px;">
<textarea></textarea>
</div>
</body>
</html>
Другой вариант, который полезен, если вы хотите сохранить текстовое поле inline и не хотите вмешиваться в свойства шрифта родительского блока (я предлагаю это по сравнению с предыдущим методом с высотой строки):
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
textarea {vertical-align:middle;}
</style>
</head>
<body>
<div style="background-color:#f09;">
<textarea></textarea>
</div>
</body>
</html>
Наконец, если вы действительно обеспокоены согласованностью между браузерами, имейте в виду поля и другие подобные вещи могут быть определены с разными значениями по умолчанию в разных браузерах. Используя что-то вроде YUI- Reset, вы можете помочь всем новым браузерам соответствовать стандарту, из которого вы можете построить.