/* CSS・スタイルシート質問スレッド【29】 */
width="1280" height="1024" こんな画像は表示させなくてよろしい。
>>817 >メニューと同じ高さから表示されませんでした
意味わからない。他人に通じる言葉で書いて下さい。
>817
div にborderを設定してみると、IEでも <div class="main"> の上端自体は
menu にそろってますね(Operaではずれてますが)
で、>818にもありますが、1280×1024の画像をスクロール無しに表示できる環境って
どれくらいあるんでしょう
一度アクセス解析つけて調べてみては?
ちなみに、画像サイズを640×480にしたら、お望みどおり高さ揃いました
ただし、ウィンドウサイズを小さくして、縦スクロールバーを出すと、画像の高さがずれます
position 使ったら?
>>817は、画像だけなら<div class="main">で囲む必要無し。
img要素に直にfloatなりmargin-leftなりを指定すれば済む話。
>>820 position を使うと、後続要素の位置調整が面倒だと思う。
結局、包含ブロック(body)の幅が、画像に比べて狭いのが原因だということで、
html をいじらないという前提なら、body の幅を広げるしかないのでは?
>>817 ということで、書いてみました。
スタイルシート以外の部分は、全て
>>817 と共通ね。
--------------------------------------------------------
* { border:solid 1px black; } /* border の視覚化 */
body {width:1500px;} /* 1280px + 200px が 収まるように */
.menu {/* メニュー */
float: left;
width: 200px; /* body が px 固定になっちゃったから、子を相対値にするのは、あまり意味がない */
}
.main {/* メイン */
margin-left:210px;/* .menu と同じ理由 */
}
みなさんありがとうございます。
>>817ですが1280〜とかはただの例です。
実際はもっと小さい画像(といっても600〜とかですが)を表示させて、
窓最大だと大丈夫なのに窓サイズを小さくしたとき、IEだけ高さがずれたので不思議に思って質問しました。
質問内容をわかりやすくしようとしたんですが逆効果のようでした。すみません。
>結局、包含ブロック(body)の幅が、画像に比べて狭いのが原因だということで、
>>822さん
これはIEのバグなんでしょうか?
>>817にあるとおりMozillaやOperaは高さがずれませんでした。
825 :
822:04/04/22 01:16 ID:???
>>824 悪いけど私にはわからない。仕様書とか詳しくないから。
これは、float の指定されたブロックのあとに、置換インライン要素が続くとき、
その置換インライン要素の幅が、全体の包含ブロックより大きい場合、どう振舞うべきか、
ということなんだけど、
仕様書やバグ辞典を見ても、私には該当する項目が見つからないんです。
>>818 のソースで、
.main{} (宣言が空)のときの表示は、IE も Mozilla も同じなんだけど、
.main { marign-left:21% }
.main { padding-left:21% }
とすると、ご承知のとおり、描画が異なる。どちらが正しいのだか、私にはわからない。
ちなみに、
.main { width:1600px }
としても描画が異なるんだけど、これは IE が間違っていると思う。
826 :
822:04/04/22 01:18 ID:???
>>824 お前は表示方法を探しているのか?バグ探しをしているのか?
829 :
822:04/04/22 07:26 ID:???
>>827 そう言われても、まとまっていないから、どう報告したらよいのか分からないよ。
>>824 あのあとでも少し試したんだけど、結局 div.main を基準ブロックにして、
その中で div.menu と img を絶対位置指定してしまうのがいちばん簡単で、
互換性も高かった。
>>820 氏の言うとおりか。
IE にはあまり凝った float を扱わせないほうが良いみたい。
IE を対象にする限り、div 厨になるのは避けられないと思う。
個人的には、
>>823 の通り、画像は背景にした方が、ブラウザにあまり無理をさせずに
済むから良いと思いますけど。