3

position:absolute要素に割り当てると、width内部のテキストに応じて変数になりません。

一方、position:relativeその要素に割り当てると、width内部のテキストによって異なります。

positionここでは、それぞれ異なるプロパティ を持つ 2 つのメニューのフィドルがあります: http://jsfiddle.net/je3PX/4/

これの原因は何ですか?なぜ属性widthに依存するのですか?positionテキストのサイズに応じて異なるようにしようとしています。

ありがとう。

4

1 に答える 1

10

のデフォルト値widthautoです。これは、必要に応じてレイアウトに適応することを意味します。ブロック レベル要素 ( display:blocket al) の場合、これは親コンテナーに適応することを意味し、インライン要素 ( display:inlineet al) の場合、これはコンテンツに適応することを意味します。

position属性は、値が要素を通常のフロー レイアウトから外さないという点でこれを考慮に入れているため、基本ルールは引き続き維持されrelativeますabsoluteは、通常のフロー レイアウトからそれを取り出します。そのため、幅のベースとなる親がなくなり、コンテンツに合わせてフォールバックします。

関連するルールは、W3 CSS2 仕様の第 10 章で定義されています (長すぎて引用できません)。

于 2013-05-14T16:07:00.983 に答える