什么是等高布局?
頁面的主體內(nèi)容是兩列結(jié)構(gòu)榔幸,左列是用來導(dǎo)航的坊谁,右列是用來顯示內(nèi)容的搔耕。我們看到它們有一個(gè)共同的邊框隙袁,中間還有一條分隔線痰娱,左右兩列的高度都是不固定的。這種情況下就需要兩列的高度保持一致了菩收,左邊高度增加梨睁,右邊也跟著增加,右邊高度增加娜饵,左邊同樣也要增加坡贺,否則就會出現(xiàn)“斷層”的效果。在這里箱舞,等高布局是為了維護(hù)邊框線條的完整性遍坟,在有些地方則可能是為了維護(hù)背景的完整性,達(dá)到整體一致不缺失的效果晴股。
等高布局有幾種不同的方法愿伴,但目前為止我認(rèn)為瀏覽器兼容最好最簡便的應(yīng)該是padding補(bǔ)償法。首先把列的padding-bottom設(shè)為一個(gè)足夠大的值电湘,再把列的margin-bottom設(shè)一個(gè)與前面的padding-bottom的正值相抵消的負(fù)值隔节,父容器設(shè)置超出隱藏,這樣子父容器的高度就還是它里面的列沒有設(shè)定padding-bottom時(shí)的高度寂呛,當(dāng)它里面的任一列高度增加了怎诫,則父容器的高度被撐到它里面最高那列的高度,其他比這列矮的列則會用它們的padding-bottom來補(bǔ)償這部分高度差贷痪。因?yàn)楸尘笆强梢杂迷趐adding占用的空間里的幻妓,而且邊框也是跟隨padding變化的,所以就成功的完成了一個(gè)障眼法呢诬。
在進(jìn)行具體操作的時(shí)候涌哲,padding-bottom的值大小取決于你的項(xiàng)目的實(shí)際情況,如果不確定尚镰,設(shè)大一點(diǎn)也無所謂阀圾。
最終的代碼:
body{ padding:0; margin:0; color:#f00;}
.container{ margin:0 auto; width:600px; border:3px solid #00C;
? ?overflow:hidden; /*這個(gè)超出隱藏的聲明在IE6里不寫也是可以的*/
}
.left{ float:left; width:150px; background:#B0B0B0;
? ?padding-bottom:2000px;
? ?margin-bottom:-2000px;
}
.right{ float:left; width:450px; background:#6CC;
? padding-bottom:2000px;
? margin-bottom:-2000px;
}
? ?
? ?
現(xiàn)在我的高度比left高,但left用它的padding-bottom補(bǔ)償了這部分高度
? ?