アプリ版:「スタンプのみでお礼する」機能のリリースについて

CSS初心者です。
Win IE6 環境で制作しています。

「メニュー」部分(右側)と「コンテンツ部分」(左側)とに分けて2段組で外部CSSでのページレイアウトに挑戦しているのですが、なんとかテーブルでのレイアウトを全部外して、形にはなったのですが、表題のようにコンテンツの高さに合わせて、メニュー領域の背景色を付けることが出来ません・・・。

CSSは

.contents { width:770px; text-align:center; } (全体のコンテンツ領域)
.contents-left { width:550px; float: left; text-align:center; } (←コンテンツ部分)
.contents-right { width:200px; vertical-align:100%; } (←メニュー部分)
.footer { width:770px; text-align:center; clear: both; } (フッター)

とし、

メニューを囲んでいるDiv要素には
.menu_box { background-image:url(img/menuback.gif) ; width:197px; vertical-align:100%; }

としています。

いといろと試行錯誤していて「vertical-align:100%;」または「vertical-align:bottom;」などを付けてみましたが、ダメでした。
教えてください。よろしくお願いします。

A 回答 (4件)

「vertical-align」はあくまでもBOX内の要素のそろえ位置を指定するものであって、BOXの幅が変わるわけではありません。



#1の方が言うように<div>で周りを囲い背景を設定するしか。

IEとFirefoxで同様の表示ができるサンプルを作ってみました。
ご参考とまで。

------------------------------
<html>
<head>
<title>Layout Sample2</title>
<style type="text/css">
.contents {
width:770px;
text-align:center;
}
.contents-left {
width:550px;
float:left;
text-align:left;
background-color:#ffffff; /* 左側の背景が画像にならないように隠すため */
}
.contents-right {
text-align:center;
}
.footer {
width:770px;
text-align:center;
}
.clr {
clear:both;
}
.back {
width:770px;
background-color:#ccffff;
background-image:url(./img/menuback.gif);
}
</style>
</head>
<body>
<div class="back"><!-- さらに囲まないとFirefoxじゃ背景でない -->
<div class="contents">
<div class="contents-left">
<h2>こんてんつ</h2>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
<p>こんてんつの内容。どれくらい長くなるかは表示してみないとわからんねぇ。</p>
</div>
<div class="contents-right">
<h2>めにゅー</h2>
<p>めにゅー1</p>
<p>めにゅー2</p>
<p>めにゅー3</p>
<p>めにゅー4</p>
<p>めにゅー5</p>
</div>
</div>
<div class="clr"></div>
</div>
<div class="footer">
<p>ふったふったふった</p>
</div>
</body>
</html>
    • good
    • 0

外側をdiv等で囲む場合、内側にfloat要素があれば、内側の最後にclearが必要です。


内側にfloatではない高さ1px以上の要素がなければ
外側のdivは領域を確保しません。
ネスケで確認すれば分かるはずです。
    • good
    • 0

#2です。

ちょと訂正(^-^;

BOXの幅が → BOXの高さが です。

たてよこの解釈は重要ですので。ゴメンorz
    • good
    • 0

コンテンツ部分に応じてメニュー部分の高さを取得するのは現実的に難しいです。


<div id="wrapper">
<div id="contents-left"></div>
<div id="contents-right"></div>
<div style="clear:both;height:1px;"></div>
</div>
としてwrapperに背景画像をつければ意図した表示になると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!