2012-02-12 78 views
2

我有這個簡單的HTML結構:絕對定位的div的高度被忽略

<div id="mainbody"> 
    <div id="main"> 
    ... 
    </div> 
    <div id="left"> 
    ... 
    </div> 
</div> 
<div id="footer"> 
... 
</div> 

股利「型主體」具有位置:相對的。 div「left」在頁面左側擁有絕對位置和動態高度。 div「main」浮動在div左邊的左邊。

CSS:

#mainbody { 
    position:relative; 
} 
#left { 
    position:absolute; 
    width:250px; 
} 
#main { 
    float: left; 
    margin-left: 260px; 
    width:80%; 
} 

的問題:格「左」被忽略,格「頁腳」開始,在格「主」,即使在div「左」結尾的高度比格大高度「主要」。

+0

必須看到CSS以及準確回答。 – Scott 2012-02-12 00:08:56

回答

3

你所尋找的是一個clearfix讓你的元素將正常加載。衆多可能clearfixes見the linked SO question "Which method of 'clearfix' is best?"

之所以footer元素的地方我main元素旁邊的自己是因爲絕對定位的元素從頁面流中刪除。結果,後來的元素將絕對定位的元素視爲不在那裏。有了clearfix,這個問題就解決了。

2

如果您不希望以下元素受到影響,您需要在浮動元素之後添加一個清除。

這是可以實現兩種方式:

  1. 添加CSS明確:雙方或明確:右到下一個元素。 (如後DIV#向左或#footer的

  2. 添加溢出:汽車到div的#型主體

順便說一句,如果你想更具體的或準確的答案,我建議你包括你的HTML和CSS。