2011-05-16 44 views
1

我試圖做一個簡單的兩個欄佈局,但它似乎比我想象的更難..不能得到兩個欄佈局工作

它需要有:

  • 固定寬度300像素左列
  • 它填補了 其餘頁面
  • 右列 - 無論 窗口大小
  • 兩個欄的div必須接觸頁面的底部

我遇到的問題是第三個要點,如果我使用了浮動,那麼右邊的列總是包裝在左邊的列下,我不能讓它們都與頁面底部齊平!

而且我認爲我需要浮動左列,因爲設置爲100%-300px的權利是不可能的。

任何想法?謝謝!

回答

0

試試這個 - 從IE6 +上的作品進行測試。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <style type="text/css"> 
    html, body {height:100%;position:relative;margin:0;padding:0;} 
.side {float:left;width:300px;height:100%;background:red;} 
.main {margin-left:300px;background:blue;height:100%;} 
    </style> 
</head> 
<body> 
<div class="side"> 
     side content 
</div> 
<div class="main"> 
    content 
</div> 
</body> 
</html> 
+0

在這種情況下,更明顯的是使用id的而不是你的div的類。 – Midas 2011-05-16 15:33:38

+0

當我把文本放入長度超過一頁的.main時,div不會展開並且背景停止。 – 472084 2011-05-16 15:45:04

+0

@Jailagle你沒有具體說明。 YOu可以嘗試人爲列http://line25.com/articles/create-sidebars-of-equal-height-with-faux-columns - 與自定義退出它應該工作。 – easwee 2011-05-17 10:38:49

0

CSS:

#main, * html #left, * html #right { display:inline; height:100% } 
#main { display:table } 
#left, #right { display:table-cell } 
#left { width:300px } 

* html #left是IE瀏覽器,所以它被強制使用display:inline; height:100%。 IE似乎不支持display:table-cell

HTML:

<div id="main"> 
    <div id="left"></div> 
    <div id="right"></div> 
</div>