• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:floatをfooterに指定すると正しく表示ができない。)

floatをfooterに指定すると正しく表示ができない

このQ&Aのポイント
  • 画像の(3)のようにfooterにfloat:leftを指定しなければ綺麗に表示されるのは分かります。ところが、画像の(1)や(2)のように、footerにfloat:left;を指定して、次の行で<div style="clear:left"></div>と指定して、footerにfloat:leftを指定しなかったのと同様の処理をすると、(1)や(2)のようにwidthに対して様々な現象が起きてしまいます。
  • (1)はwidthを指定しない場合、width:auto;を指定した場合に見られ、(2)はwidth:100%;とした場合にwrapperよりはみ出すという現象が起きます。
  • なぜ、floatを指定しないのと指定後解除するのとで同様の結果が得られずに違った結果になるのでしょうか?わかる方いらっしゃいましたら回答宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

表示は正しいですよ。 (1) 同じブロックレベルの非置換要素でも、通常配置される場合とフ ロートしている場合では計算方法が違います。フロートしている場 合、autoな幅は"shrink-to-fit"することになっているんですよ。 CSS2.1の、「10.3.5 Floating, non-replaced elements」に書いて ありますのでお読みください。 (2) WRAPPERの幅とFOOTERの幅は等しいです。ただしFOOTERは左右で合 計10pxになるボーダーがあるので、その分はみだします。

aaiok
質問者

お礼

回答有難う御座います。 (1)良く理解することが出来ました。 参照:floatのshrink-to-fit(フィットするように縮む) http://gyauza.egoism.jp/clip/archives/2007/04/float-css-width-auto/ (2)の場合で、footerの幅+ボーダー幅=wrapperの幅にするにはfooterにfloat指定をしないのが大事ということがわかりました。理由はfloat指定してしまうと回答内容の(1)(2)のようにshrink-to-fitかwrapperの幅からはみ出してしまうからです。

aaiok
質問者

補足

非置換要素… img とか objectとかフォームのコントロール系とか以外のもののこと 参照:非置換要素 http://terkel.jp/archives/2009/06/floating-nonreplaced-elements-without-explicit-width/

関連するQ&A

専門家に質問してみよう