2
<body>
  <div>
    <input type="text">
  </div>
  <span>
    <input type="text">
  </span>
</body>

私の質問はとても簡単です。div の幅が親の幅と同じなのに、span の幅が親の幅より短いのはなぜですか? つまり、body の幅が 1000px の場合、div も 1000px ですが、span は 300px しかありません (ブラウザーによって変動します)。

4

3 に答える 3

5

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>
于 2012-12-25T07:26:23.677 に答える
4

<div>tag はブロック レベルの要素です<span>が、tag はインライン要素です。

  • ブロック レベルの要素は、その幅を親アイテムの 100% に拡張し、ブレーク ラインを生成します。

  • インライン要素は HTML 要素 (コンテンツ) をラップするだけなので、その幅はコンテンツに応じて柔軟です

于 2012-12-25T07:27:08.280 に答える
2

<span>はインライン要素です<div>が、 はブロック要素です。インライン要素は、親要素を埋めるために展開されません。

于 2012-12-25T07:25:40.083 に答える