当内部div宽度= 100%时,清除IE6中嵌套div的问题

时间:2011-04-21 01:34:17

标签: css xhtml

我使用的是两列布局,导航栏放置为float:left。内容div使用margin-left,因此它位于它旁边。

一切都很好,除非我在内容div中使用宽度为100%的div,它会向下移动到导航栏的底部。

这只适用于IE6,其他所有浏览器都可以使用它(IE7 + / FF / Chrome)。我通常不会担心IE6太多,但这是一个很大的问题,因为使用长导航栏看起来页面是空的,除非你向下滚动到底部。

我假设它是导致问题的内部div上100%宽度的请求,并且IE6错误地将其视为对100%页面的请求,而不仅仅是包含内容div。

关于变通方法的任何想法?现场演示: http://www.songtricks.com/Ie6ClearBug.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<style type="text/css">
* 
{
    margin:0px;
    padding:0px;
}

.left
{
    width:300px;
    float:left;
    background-color:#CFF;
}

.left .navpanel
{
    height:300px;
    width:200px;
    border:solid 1px black;
    margin:10px auto;
}

.right
{
    margin-left:300px;
    background-color:#FFC;
}

</style>

</head>

<body>

    <div class="left">
        <div class="navpanel">navpanel</div>
    </div>
    <div class="right">
        <div style="width:100%;">this should be at the top</div>    
    </div>

</body>
</html>

好的,我找到了答案。新用户无法回答他们自己的问题,所以就是这样。

原来可以在IE6中通过将内部div的宽度略微减少到99%(或使其自动化,然后由浏览器自行决定是否获得全宽度)来标准化行为。 div或不,取决于其中的内容。)

因此影响最小的解决方案是使用:

<div class="right">
<div style="width:100%;_width:99%;">this should be at the top</div>
</div>

这使普通浏览器不受影响,并为IE6安全地保留了99%。

1 个答案:

答案 0 :(得分:0)

我很抱歉我不太了解你的问题,我没有IE 6 ..所以我不能测试你的CSS ...但是:我可以说一下你的CSS。 首先,您需要将float:left添加到.right类。 其次,如果您在浮动的同一侧设置保证金,IE将保证金加倍。 我希望你理解我的英语......对不起!!

第三:我不记得确切,但有些浏览器计算div内的边框,div之外的其他...所以如果你设置的东西:div宽度300px和边框1px,你可以找到你的div总宽度是301px

bye bye