Dodatkowa przestrzeń pod obszarem tekstowym różni się w zależności od przeglądarki

85

Pod tagiem textarea jest dodatkowa przestrzeń. Od 1 do 4 pikseli w różnych przeglądarkach. Znaczniki są bardzo proste:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
    <head>
        <style>
            body {
                margin: 0;
                padding: 0;
            }
            .main {
                background-color: red;
            }
            textarea {
                background-color: gray;
                resize: none;
                margin: 0;
                border: 0 none;
                padding: 10px;
                height: 50px;
                overflow: hidden;
            }
        </style>
    </head>
    <body>
        <div class="main">
            <textarea></textarea>
        </div>
    </body>
</html>

Oto jak jest renderowany w przeglądarkach:

Zrzut ekranu

Dlaczego to się dzieje? Jak usunąć tę dodatkową przestrzeń?

rzymski
źródło

Odpowiedzi:

210

Dodaj vertical-align: topdo textarea.

Przyczyną odstępu jest to, że textareajest to element inline(lub inline-block), a odstęp jest miejscem zarezerwowanym dla dolnych znaków w tekście. Nie wiem dokładnie, dlaczego różnica jest inna w różnych przeglądarkach.

trzydzieści kropek
źródło
17

W moim przypadku odpowiedź trzydziestu kropek nie działała dobrze z <div>dolną ramką rodzica .

display: block jednak miło mi odpowiadało.

André Chalella
źródło