在css咱們常常用到固定頭部和底部,自適應中間部分,或者固定左側,自適應右側等。在網上看了不少方法,通常都是經過絕對定位完成,position: absolute;具體能夠網上去搜,這樣能夠完成上中下的佈局,可是此次基礎上再作左右佈局浮動會出現問題,具體什麼問題我沒有深究。查閱一些資料後,發現了css的display屬性有個table值,能夠根據這個作自適應,作參考本身寫了一下:css
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <style> *{ padding: 0; margin: 0; } html, body, #container { height:100%; overflow:hidden; font:small/1.5 "宋體", serif; } #container{ width: 100%; display: table; margin:0 auto; background: #00CC00; } #container > div{ display: table-row; } #header,#footer{ width: 100px; background: #cccccc; } #wrap{ width: 100%; height: 100%; display: table; } #left { height: 100%; display:table-cell; background: #ff2d38; } #right { width: 200px; height: 100%; display:table-cell; background: #1531ff; } </style> </head> <body> <div id="container"> <div id="header"></div> <div id="content"> <div id="wrap"> <div id="left"></div> <div id="right"></div> </div> </div> <div id="footer"></div> </div> </body> </html> 這段代碼實現了上下自適應和左右自適應,其中 具備display: table-row; display:table-cell;屬性的div不固定高度或寬度進行自適應,其中有幾點要注意, 1.請作自適應的時候用div,這樣不指定寬度和高度,它會自動填充父元素,這樣中間層就是div:parent - 100px -100px; 2.若是不加 <div id="wrap">這個div進行包裹,left和right會被識別成和header,footer一個table內的同級別元素,header,footer自會佔用一列; 3.最有一點,請指定html,body height:100,這樣div就能夠獲取到全屏的高度。
經過使用display咱們就能夠任意指定上下和左右自適應,代碼簡單,也不用js.
以上純屬本人觀點,若有錯誤,敬請之處,你們共同進步。html