У меня есть серия div
ящиков, за которыми следует textarea
с тем же классом, что и тот же стиль, но я заметил, что div
, кажется, автоматически заполняет горизонтальную ширину родителя, пока textarea
этого не делает. Предоставление textarea
width:100%
решает проблему, но если я даю общий класс margin-left:80px
, то textarea
превышает родительский элемент, тогда как поля div
этого не делают.Почему ширина Textarea и ширина DIV ведут себя по-другому?
Мне просто интересно, почему это происходит, и если оно может быть воспроизведено с помощью textarea
. Самое чистое решение, которое я имею до сих пор, дает textarea
width:calc(100%-80px)
, но предпочел бы более «естественное» решение.
Вот пример кода: -
HTML
<body>
<div class="container">
<div class="box">
DIV
</div>
<div class="box">
DIV
</div>
<form>
<textarea class="box">TEXTAREA</textarea>
</form>
</div>
</body>
CSS
.container {
background: #bbb;
padding: 30px;
box-sizing: border-box;
}
.box {
height: 80px;
background: #888;
box-sizing: border-box;
margin: 0 0 50px 80px
}
textarea {
width: calc(100% - 80px); // CLEANISH SOLUTION
}
Вот JSFiddle: https://jsfiddle.net/tndm2eqz/1/
Вы изменили структуру HTML. Я думаю, что дело в том, чтобы заставить его выглядеть одинаково, а _понимание структуры, чтобы понять, почему размер отличается. – DarkDust