2011-03-16 164 views
0

我遇到問題。請參閱下面的代碼。位置:絕對和位置:相對問題ie

<div style="position:relative; overflow:hidden; width:120px;"> 
    <div style="position:absolute; left:0px;">Content</div> 
    <div style="position:absolute; left:40px;">Content</div> 
    <div style="position:absolute; left:80px;">Content</div> 
</div> 

問題是,在Firefox中,它的工作正常;但是當我在ie-8中運行這個代碼時,它會產生問題。所有的位置:絕對div是40px寬。他們應該只是簡單地達到我分配給他們的位置。在ie,與position:absolute的第二個div採取雙左空間。它計數第一個div爲40px,然後計數40px以上。它應該從相對定位的div的左側拿40px。有人可以幫忙嗎?

+0

這是所有這些div的CSS嗎?如果你有一個float:left;在子div上它可能導致你描述的問題 – 2011-03-16 17:17:55

回答

0

它在ie7 & ie8中按預期工作。並放下溢出:隱藏,因爲它隱藏了一切。在這裏看看它是如何看起來都帶有邊框的:http://jsfiddle.net/uWkJ7/1/ 所有的div都展開到它們的內容寬度。

+0

你可以看看[link] http://dev1.mybex.com/bhdarchitects/projects.php?subcat=4&prodid=1&imgid=8 [/ link] 。觀察畫廊中的兩幅圖像。第一個隱藏在Firefox的左箭頭後面,而它在ie中顯示得很好。當我從左邊給出40px的時候,firefox顯示了corrent結果,但是它將它向前推40px並且產生了問題。 – themajiks 2011-03-17 05:07:24

+0

我自己解決了這個問題。我在CSS中給了'left:0;'並應用了僅適用於ie的hack。黑客是, 'html>/**/body left:40px;' – themajiks 2011-03-17 11:15:22

+0

我調查了這個問題。這絕對是一些錯誤。 – 2011-03-17 16:52:49

0

在「非佈局」元素中,hasLayout不會被觸發,即沒有維度的純div可以是「非佈局祖先」。