私は基本的にウェブサイトに3列のレイアウトを使用しています。私が達成したいのは、真ん中(コンテンツ)の列の高さが右の列(サイドバー)に調整されるため、真ん中の列の右側の境界線がページの下部まで届くようにすることです。さらに、左側の列の高さを他の列に合わせて調整し、ページの下部に背景画像ユニットを配置することも必要です。
ウェブサイト:http://www.massageforum.be
これは私がこれまで行ってきたことです(panel_left =背景画像のある左の列、panel_rightはdivコンテンツ(中央の列)とサイドバー(右の列)の周囲のdivです):
function setDivHeight() {
//set height of content according to sidebar if content is smaller than sidebar
var DivHeightSidebar = document.getElementById('sidebar').offsetHeight;
var DivHeightContent = document.getElementById('content').offsetHeight;
if(DivHeightContent < DivHeightSidebar)
{
document.getElementById('content').style.height = DivHeightSidebar + 'px';
}
//set height of panel_left according to panel_right so background image reaches until bottom of page
var DivHeight = document.getElementById('panel_right').offsetHeight;
document.getElementById('panel_left').style.height = DivHeight + 'px';
}
</body>
この関数は、タグの直前のすべてのページで呼び出されます。
問題は、それが機能することもあれば、機能しないこともあるということです。コンテンツ列の高さがサイドバー列の高さに調整される場合もありますが、それより長くする必要があり、コンテンツが収まりません。スクリーンショット:http://www.massageforum.be/Massageforum1.png
また、左側の列の高さがpanel_rightの高さに適切に調整されていない場合があります。
Chrome、Firefox、Safariでこの動作が見られます。他のブラウザはテストしていません。
この関数をより堅牢にする方法について何かアドバイスはありますか?