私は一連のdiv
ボックスの後に、同じスタイルを採用する同じクラスのtextarea
が続きますが、textarea
ではなく、div
が自動的に親の水平幅を埋めるように見えることがわかりました。 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