<body>
<div>
<input type="text">
</div>
<span>
<input type="text">
</span>
</body>
私の質問はとても簡単です。div の幅が親の幅と同じなのに、span の幅が親の幅より短いのはなぜですか? つまり、body の幅が 1000px の場合、div も 1000px ですが、span は 300px しかありません (ブラウザーによって変動します)。
div
はブロック レベルの要素span
ですが、 はインライン要素です。ブロックレベル要素は親要素の幅を占有しますが、インライン要素は占有しません。
たとえばa
、インライン要素です。親全体を占有することを期待したり、望んだりしません。
Some text <a href="#">and an engaging link</a>.
ただし、p
ブロック レベルの要素です。親全体を占有します (そして、他のブロックレベルの要素がその横にあることを許容しません) :
<p>Some text</p>
<p>Other text -- not on the same line.</p>
<div>
tag はブロック レベルの要素です<span>
が、tag はインライン要素です。
ブロック レベルの要素は、その幅を親アイテムの 100% に拡張し、ブレーク ラインを生成します。
インライン要素は HTML 要素 (コンテンツ) をラップするだけなので、その幅はコンテンツに応じて柔軟です
<span>
はインライン要素です<div>
が、 はブロック要素です。インライン要素は、親要素を埋めるために展開されません。