2010-11-25 101 views
0

我有另一個div內的浮動div的集合。子div的寬度和高度都是可變的 - 也就是說,它們使用我無法控制的動態數據填充。現在有時候會發生什麼情況,如果最後一個子div的文字牆高度很大,因爲它被其他div所強制爲一個小寬度。這隻發生在IE 6,7,8 - FF3.6正確處理它 - 它確保巨大的div在寬大的換行符後開始。使用CSS清除最後一個浮動元素?

有反正我可以強迫IE瀏覽器進入相同的行爲?

+0

你可以嘗試重現錯誤嗎?堆疊不同高度的多個浮標通常是混沌的祕訣,因此很難準確地分辨出您遇到的問題。如果你發佈你的代碼,我們可以重現它,並解釋爲什麼IE以它的方式顯示它。 – 2010-11-25 03:31:19

回答

1

實際上,如果您爲該浮動div指定寬度,那麼它將使用該寬度,否則浮動div將「收縮包裝」到內容。所以,你可以嘗試一下,也可以使用這種風格對於浮動:

#the-last-div { clear: both; float: left } 

你可能會或可能不希望它浮動,如果你希望它是在整個頁面全部由自己。

+0

我不知道哪個div會成爲最後一個div。每個div都有動態內容進入它。有一些div可能沒有內容。 – 2010-11-25 03:46:02

1

對此的唯一解決方案是以下三種之一:指定clear:both ;,指定默認寬度,或者使用jquery/javascript動態地執行其中一個或兩個動作。只要你讓內容決定你將遇到問題的高度和寬度。

使用clear:both;在所有的divs將把每個浮動到自己的行。這聽起來不像你想要的。

指定寬度將是最可預測的。如果沒有足夠的空間,瀏覽器會尊重寬度並將清除到下一行。

如果您要動態加載需要特定寬度的內容,那麼適當地動態調整包含的div寬度應該是微不足道的。如果內容太長,您可以檢查內容的長度併爲接收內容的div分配寬度。由於我們沒有你的代碼,你必須試驗長度和寬度才能正確使用它。

您正在加載簡單文本的內容還是包含div和其他塊級元素? 它是如何浮動的?它是一個混合的float:left;和float:right; ?或者全部是一方?