2012-04-26 95 views
3

我有一個具有以下基本結構的部位。這個網站應該有一個背景是白色的,與apears一次圖像,而是它只是繼承CSS中html{ }聲明的顏色。應該具有背景的元素下面的所有元素都是透明的,並且即使添加了背景(在Firebug中進行了檢查),但它似乎低於html{ }中定義的背景。CSS背景diappearing時溢出可見

這隻發生,因爲我從#content-container刪除聲明overflow: none;,在那之前,它的工作。然而,我需要刪除這個,因爲發生在網站上的變化需要導航菜單具有下拉菜單,所以下面的容器必須允許溢出。

是否有一個特定的CSS之所以發生這種情況?或者我需要提供給別人什麼幫助?謝謝。

<div id="main-container"> 

    <div id="header-container"> 
     <div id="header-top"> 
      {Code} 
     </div> 

     <div id="header-middle"> 
      {Code} 
     </div> 

     <div id="header-nav"> 
      {Code}   
     </div> 
    </div> 

    <div id="content-container"> 
     <div id="content-left" class="index"> 
      {Code} 
     </div> 

     <div id="content-right"> 
      {Code} 
     </div> 
    </div> 

    <div id="footer-container"> 
     {Code} 
    </div> 

</div> 
+1

沒有看到你的CSS我猜你是浮動'#content-left'和'#content-right'元素,然後不清除它們(這就是'overflow:hidden')。如果你不能使用overflow:hidden,或者添加一個清除元素,請嘗試使用'overflow:auto'。 – 2012-04-26 08:43:30

+1

完美,謝謝。我以爲我正確清理,但我猜不是。謝謝您的幫助。 – 2012-04-26 08:47:10

回答

4

我猜#content-left#content-right元素浮動?在這種情況下,在#content-containeroverflow: none是造成元件自清晰。如果沒有這個,元素將沒有高度,因爲它內部的所有元素都是浮動的,因此無法計算容器的高度。

如果必須使用overflow: visible,解決方法是將一個div在包含元素的一端與clear: both設置就可以了:

<div id="content-container"> 
    <div id="content-left" class="index"> 
     {Code} 
    </div> 

    <div id="content-right"> 
     {Code} 
    </div> 

    <div class="clear"></div> 
</div> 
.clear { clear: both; } 
+0

是的,就是這樣。我正在使用我的'#footer-container'元素進行清除,該元素正確對齊所有內容,所以認爲這是在做伎倆。感謝您的幫助,這爲我節省了大量頭痛! – 2012-04-26 08:46:47