如果我們想在3列布局的最后加一行頁(yè)腳,放版權(quán)之類(lèi)的信息。就遇到必須對(duì)齊3列底部的問(wèn)題。在table布局中,我們用大表格嵌套小表格的方法,可以很方便對(duì)齊三列;而用div布局,三列獨(dú)立分散,內(nèi)容高低不同,就很難對(duì)齊。其實(shí)我們完全可以嵌套div,把三列放進(jìn)一個(gè)div中,就做到了底部對(duì)齊。下面是實(shí)現(xiàn)例子(白色背景框模擬一個(gè)頁(yè)面):
body 這里是#header{ margin: 0px; border: 0px; background: #ccd2de; width: 580px; height: 60px;}這里是#mainbox { margin: 0px; width: 580px; background: #fff; }包含了#menu,#sidebar和#content 這里是#menu{ float: right; margin: 2px 0px 2px 0px; padding:0px 0px 0px 0px; width: 400px; background: #ccd2de; }
這里是#sidebar{ float: left; margin: 2px 2px 0px 0px; padding: 0px; background: #f2f3f7; width: 170px; },背景顏色用的是#main的背景色
這里是#content{ float: right; margin: 1px 0px 2px 0px; padding:0px; width: 400px; background: #e0efde;}
這里是主要內(nèi)容,根據(jù)內(nèi)容自動(dòng)適應(yīng)高度
這里是主要內(nèi)容,根據(jù)內(nèi)容自動(dòng)適應(yīng)高度
這里是主要內(nèi)容,根據(jù)內(nèi)容自動(dòng)適應(yīng)高度
這里是#footer{ clear: both; margin: 0px 0px 0px 0px; padding: 5px 0px 5px 0px; background: #ccd2de; height: 40px; width: 580px; }。
這個(gè)例子的頁(yè)面主要代碼如下:
<div id="header"></div>
<div id="mainbox">
<div id="menu"></div>
<div id="sidebar"></div>
<div id="content"></div>
</div>
<div id="footer"></div>
具體樣式表都寫(xiě)在相應(yīng)版塊里了。重點(diǎn)在于#mainbox層嵌套了#menu,#sidebar和#content三個(gè)層。當(dāng)#content的內(nèi)容增加,#content的高度就會(huì)增高,同時(shí)#mainbox的高度也會(huì)撐開(kāi),#footer層就自動(dòng)下移。這樣就實(shí)現(xiàn)了高度的自適應(yīng)。
另外值得注意的是:#menu和#content都是浮動(dòng)在頁(yè)面右面"float: right;",#sidebar是浮動(dòng)在#menu層的左面"float: left;",這是浮動(dòng)法定位,還可以采用絕對(duì)定位來(lái)實(shí)現(xiàn)這樣的效果。
這個(gè)方法存在另一個(gè)問(wèn)題,就是側(cè)列#sidebar的背景無(wú)法百分之百。一般的解決辦法就是用body的背景色來(lái)填充滿。(不能使用#mainbox的背景色,因?yàn)樵趍ozilla等瀏覽器中#mainbox的背景色失效。)
好了,主要的框架已經(jīng)搭建完畢,剩下的工作只是往里面添磚加瓦。