2011-03-16 124 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可以是“非布局祖先”。