2012-01-05 116 views
0

我有一個非常基本的網站,左側導航欄和右側的內容區域較大。他們各有不同的背景。調整大小的HTML背景問題

我希望內容和導航欄的高度相同並保持其背景。我不知道如何做到這一點,所以我把它們都放在一個div中,並將其背景設置爲導航欄的背景。當內容的擴展,它推動了包含分區,並顯示在左邊的正確背景:

http://jsfiddle.net/8Ngey/3/embedded/result/

當導航比含量大,但是,背景是錯誤的:

http://jsfiddle.net/8Ngey/2/embedded/result/

什麼是正確的方式來完成我想要做的?另外,在一個側面說明,爲什麼包含div的高度爲0px,即使div內部有高度,除非我將包含的div設置爲向左浮動?

編輯:

爲了澄清,我想:

  • 頁只要內容
  • 導航條,只要頁面
  • 內容,只要頁面
  • 內容和導航保持背景顏色

回答

4

啊,你已經發現了CSS中幾乎不可能的等高列。那裏有一些駭人的解決方案,但最簡單的? Faux columns

只需製作一張1000px寬,1px高的圖像,並在背景上垂直重複它div。製作第一個100px藍色和下一個900px的綠色。沒有人會知道差異!

#background { background: url(file.png) repeat-y; } 

More techniques(這通常比他們的價值更麻煩)。


要回答第二個問題:浮動元素不會向父級添加高度(默認情況下)。爲了解決這個問題,只需設置overflow: hiddenoverflow: auto在包裝divexample):

#wrapper { background:black; overflow:hidden; } 
+0

我想我會使用該解決方案現在,但我希望的東西,這將允許不僅僅是純色更多。雖然這是我現在需要的,但我仍然想知道以後。另外,我的意思是關於背景div,它的高度爲0,直到我添加float:left。 – mowwwalker 2012-01-05 23:54:09

+0

@Walkerneo,哦,同樣的交易。刪除float:left並替換overflow:hidden(請參閱jsfiddle.net/8Ngey/5/embedded/result)。查看更多技巧的帖子的更新答案。老實說,我高度提倡表格是一種痛苦。 (雖然有些人會說我會說這樣的話。) – benesch 2012-01-06 00:41:10