- Home »
- XHTML+CSS Webサイト制作Tips »
- (X)HTML+CSS Tips »
- floatしたdivの高さを揃える
- (X)HTML+CSS Tips »
- XHTML+CSS Webサイト制作Tips »
(X)HTML+CSS Tips
floatしたdivの高さを揃える
tableレイアウトからdivのfloatによるレイアウトに変更した際に、デザイン面で困ることがいくつかありますが、その1つが、floatしたdivの高さが揃わないこと。
floatしたそれぞれのdivに背景画像や背景色を設定していたり、borderでラインを入れている場合など、高さが揃わないため、情報量が少ないdivの下に隙間が空いてしまいます。
そういった問題を解決する方法です。
サンプル
floatしたdivの高さを揃える 高さが可変(別ウィンドウで表示)
floatしたdivの高さを揃える 高さ画面いっぱい(別ウィンドウで表示)
ソース(高さが可変)
floatされたdivの中で、もっとも高さがあるものに他のdivの高さも合わせる場合です。
float解除用のclass="cl"についてはfloat解除を参照してください。
CSS
html,body {
margin: 0;
padding: 0;
height: 100%;
}
div#boxArea {
overflow: hidden;
height: auto;
width: 600px;
}
div#boxArea div {
float: left;
padding-bottom: 32767px;
margin-bottom: -32767px;
}
div#boxArea div#one {
width: 200px;
background: #376C85;
}
div#boxArea div#two {
width: 200px;
background: #4E9ABE;
}
div#boxArea div#three {
width: 200px;
background: #7EC4E6;
}
XHTML
<div id="boxArea" class="cl"> <div id="one"> BOX1 </div> <div id="two"> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> BOX2<br /> END </div> <div id="three"> BOX3<br /> </div> </div>
div#boxArea divのpadding-bottomとmargin-bottomに指定している32767の値は変更して構いません。ブラウザの高さよりも大きな値を設定してください。
但し、ブラウザが理解できる値は-32767~32767ですので、その範囲外の数字は指定しないでください。
ソース(高さ画面いっぱい)
floatされたdivの高さが画面高さより小さい場合に、画面高さいっぱいにdivの高さを広げる場合です。(X)HTMLの内容は高さが可変の場合と同じです。
float解除用のclass="cl"についてはfloat解除を参照してください。
CSS
html,body {
margin: 0;
padding: 0;
height: 100%;
}
div#boxArea {
overflow: hidden !important;
overflow: visible;
min-height: 100%;
height: auto !important;
height: 100%;
width: 600px;
}
div#boxArea div {
float: left;
padding-bottom: 32767px !important;
margin-bottom: -32767px !important;
padding-bottom: 0;
margin-bottom: 0;
height: 100%;
}
div#boxArea div#one {
width: 200px;
background: #376C85;
}
div#boxArea div#two {
width: 200px;
background: #4E9ABE;
}
div#boxArea div#three {
width: 200px;
background: #7EC4E6;
}
div#boxArea divのpadding-bottomとmargin-bottomに指定している32767の値は変更して構いません。ブラウザの高さよりも大きな値を設定してください。
但し、ブラウザが理解できる値は-32767~32767ですので、その範囲外の数字は指定しないでください。