最典型實用的上中下,並且中間分三列的布局,這個例子有2個特點:
1. 中間三列效果,可以任意實現單列背景色。
2. 整體最窄770px,最寬1024px,也就是說視窗小於770xp就出底部捲軸,如果大於1024px自動螢幕置中。
效果瀏覽:http://www.rexsong.com/blog/attachments/200512/29_154158_minmax_3col.htm
分析:
最外層的wrapper把所有內容都嵌套在裡邊,整體相對定位。max min已經很好的控制了最窄最寬值,但對IE沒有作用。如果沒有其他布局的穿插,這一層其實寫在body內就可以,少一層嵌套。
#wrapper{ width:auto; border:1px solid #000; min-width:770px; max-width:1024px; text-align:left; margin-left:auto; margin-right:auto; position:relative;}
wrapper 下級的 outer header footer
其中header絕對位置,footer 相對定位;outer分別對左右有130px的外邊距,這是相容非IE的關鍵。
#outer{ margin-left:130px; margin-right:130px; background:silver; border-left:1px solid #000; border-right:1px solid #000; color: #000;}
#header{ position:absolute; top:0; left:0; width:100%; height:70px; line-height:70px; border-bottom:1px solid #000; overflow:hidden; background:#0ff; text-align:center; font-size:xx-large}
#footer { width:100%; clear:both; line-height:50px; border-top:1px solid #000; background:#ffc; color:#000; text-align:center; position:relative;}
outer 下級的 clearheader outerwrap right clearer
clearheader 用做填補header的空白,clearer 是一個常用的填充hack用法。
outerwrap 寬為什麼是99%,而不是100%?因為他的上層outer有邊框,100%寬再加2個邊框象素就會撐大,FF有明顯效果。
right 的處理很經典,IE下解析為定位,FF下則為浮動。負邊距的處理也剛好使用上outer留出的空白。
#clearheader{ height:72px;}
.outerwrap { float:left; width:99%;}
#right {
position:relative;
width:130px; float:right; left:1px;
margin-right:-129px;
}
* html #right { margin-right:-130px; margin-left:-3px}
.clearer{ height:1px; overflow:hidden; margin-top:-1px; clear:both;}
outerwrap 內的 centrecontent left clearer 就很簡單了,思路類似上邊說明。