2011-07-01 30 views
0

當位置:relative用於使用滾動條(例如,如果您將position: relative關閉),IE7似乎顯示滾動條。IE7滾動條位置:相對項目WAS超出屏幕

<div class="box"> 
    <div class="inner box"></div> 
</div> 

.box { 
    position : absolute; 
    top  : 5px; 
    left  : 100px; 
    right : 5px; 
    height : 100px; 
    border : 1px solid #000; 
} 

.inner { 
    right : auto; 
    position : relative; 
    width : 110%; 
    left  : -90px; 
} 

演示:http://jsfiddle.net/VE9ne/1/

想知道是否有人已經看到了這一點,並知道如何解決它?

+0

似乎適當的行爲。你可以試試利潤率。使用left:0; margin-left:-90px; – Gerben

+0

'margin-left'作品:http://jsfiddle.net/VE9ne/4/ – thirtydot

+0

@Gerben - 發佈一個答案,我會接受它。然而,我不認爲它是合適的行爲,因爲父div是絕對定位的,所以元素留下的空間不應該計入任何東西(每個其他瀏覽器,包括IE8都適用於此) –

回答

0

使用負利潤率,而不是消極左

... 
left:0; 
margin-left:-90px; 
1

這就是相對定位所做的事情,如果抵消它,它會在對象的原始位置留下空的空間。我猜IE7不像其他瀏覽器那麼聰明,所以它會顯示滾動條,而其他人似乎意識到除了空白空間外,什麼都沒有。

這裏是w3.org不得不說一下吧:

[...]在這 方式抵消一箱(B1)對箱(B2),其 如下沒有影響:B2被給予一個位置,好像 B1未被偏移並且B2不是 在B1的偏移被應用後被重新定位爲 。 [...]

來源:http://www.w3.org/TR/CSS21/visuren.html#relative-positioning

使用利潤率和花車,而不是相對定位可以解決你的問題

+0

+1參考,但在這種情況下,沒有「下面的方框」,並且由於絕對定位,因此不存在問題。因此,「空白空間」是由「陰影」引起的 –

+0

在Firefox 4中,我通過使用負值([link](http://jsfiddle.net/CK5Zz/1/))獲得滾動條,但不是在IE9中。我認爲利潤和浮動比相對定位更好! – philVigneault

+0

我會同意利潤率,但我嘗試不使用浮動。有太多的瀏覽器錯誤與它們相關聯。 –

0

添加

html, body 
{ 
overflow: hidden; 
}