2011-09-14 77 views
0

我有一個設置,我有一個絕對div設置爲左側位置和右側位置以允許液體佈局。這一切都很好地工作,但後來我遇到了一個問題,我有一個div下面有一些副本。問題是,副本的div應該低於絕對定位div。現在它出現在它上面,這是不正確的。div高於絕對div和溢出

我經常看到這個問題,因爲在孩子被設置爲絕對後摺疊父母的div,但爲了解決這個問題,我使用清除所有或溢出:父母隱藏,它停止發生崩潰。這一次圍繞它的不崩潰,但它顯示我的底部股利高於頂部股利。

這裏是一個jsfiddle鏈接向您展示我的代碼。

+0

在你的小提琴中,你有一些不匹配的標籤。你能回去糾正嗎?這可能是你的問題的原因。注意底部的紅色div。整潔按鈕也應該對你有所幫助。 – mrtsherman

+0

這是一個缺少標籤,但這不是問題。對於那個很抱歉。仍然有其他問題。 – Chapsterj

+0

'clear'用於清除浮動,而不是絕對定位的元素。 –

回答

1

我不知道爲什麼你認爲這會奏效。你有容器footer。這包含兩個子div-footerWrapperfooterTerms

FooterWrapper絕對定位。所以它被排除在所有其他元素的流動之外。 footerTerms是footerWrapper的兄弟,自然地從其父,頁腳的左上角開始。

爲什麼footerWrapper絕對定位好像你想讓它影響你的頁面內容流?使其相對或保持靜態。

http://jsfiddle.net/mrtsherman/7cNf7/3/

<div class="footer"> 
    <div class="footerWrapper"> 
    </div> 
    <div class="footerTerms"> 
    </div> 
</div> 
+0

footerTerms不是FooterWrapper的兄弟。它在FooterWrapper之外。 FooterWrapper是絕對位置,所以我可以在其上設置一個左側位置,並在其上有一個正確的位置。現在左側設置爲0,但這會改變。 – Chapsterj

+0

我想你有一個關於相對定位的問題,我總是可以設置相對div的左右位置。 – Chapsterj

+0

再次查看您的代碼。 footerTerms確實是兄弟姐妹。我更新了我的答案,刪除了中間的所有內容,以便您可以看到。 – mrtsherman

0

我有probabaly錯誤理解你想做的事,但如果你想要一個液態佈局爲什麼不使用這樣的事情:

CSS:

<style type="text/css"> 
    #footerWrapper { 
     background: #ccc; 
    } 
    #footerWrapper .section { 
     float: left; 
     width: 33%; 
    } 
    .clear:after { 
     content: " "; 
     display: block; 
     clear: both; 
     visibility: hidden; 
     line-height: 0; 
     height: 0; 
    } 
    html[xmlns] .clear { 
     display: block; 
    } 
    * html .clear { 
     height: 1%; 
    } 
</style> 

HTML:

<div id="footerWrapper"> 
    <div class="clear"> 
     <div class="section"> 
      Footer section 1<br /> 
      Footer section 1<br /> 
      Footer section 1 
     </div> 
     <div class="section"> 
      Footer section 2<br /> 
      Footer section 2<br /> 
      Footer section 2<br /> 
      Footer section 2 
     </div> 
     <div class="section"> 
      Footer section 3<br /> 
      Footer section 3<br /> 
      Footer section 3 
     </div> 
    </div> 
    <div class="terms"> 
     Terms 
    </div> 
</div> 

然後,如果您想將頁腳掛到頁面的右側,例如您可以編輯#footerWrapper CSS並給它一個寬度和浮點數。

+0

謝謝酸檸檬,我不知道我得到這如何與我的結構相關。所以部分與dl元素相同,除了您選擇使用div?那麼你從哪裏取得33%的數字?你說浮動所有部分左邊位,然後你說如果需要將它釘在右邊。我不能給footerwarpper一個寬度,因爲它的liwuid基於我沒有像素寬度。當左側必須是左側的指定數量的像素時,如何浮動左側幫助,還必須跨越右側瀏覽器的寬度,並在縮放瀏覽器時正確更新。 – Chapsterj

+0

是的,我選擇使用divs代替dls,而33%是從做一些簡單的數學,100/3,然後將結果四捨五入到33,這意味着無論footerWrapper有多寬,它們都會佔用一個均勻空間量。如果將footerWrapper固定爲寬度並向右浮動不合理,則忽略該評論。我只是認爲這是你看完你的代碼和結果頁面後想要做的。重點是我上面的代碼是一個頁腳,它可以跨越瀏覽器寬度,其中3個部分佔用甚至空間,其他文本下面有一個div。 –

+0

感謝酸檸檬解釋您的設置。你的設置確實有效,但它不能解決問題,因爲它能夠在左側設置指定的位置,然後將其固定在右側。使用絕對定位可以實現這一點。但是因爲它將它從其他元素的自然流動中解脫出來,所以我現在沒有辦法讓它下面的元素知道它下面的位置應該在哪裏。它很自然地想要在之前被設置爲絕對的footerWrapper前面的對象位置。主要問題是如何解決這個問題來定位footerTerms。 – Chapsterj