如何阻止IE6通过负边距剪切位于其父元素之外的元素?

时间:2009-04-17 10:14:00

标签: css internet-explorer internet-explorer-6

我有一个元素通过负边距位于其父元素之外,如下所示:

<style>
.parent {
    height: 1%;
}

.element {
    float: left;
    margin-left: -4px;
}
</style>

...

<div class="parent">
    <div class="element">Element</div>
</div>

在Internet Explorer 6中,位于其父元素之外的.element部分被剪切,即不可见,隐藏,切断。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

position: relative;分配给.element,如下所示:

<style>
.parent {
    height: 1%;
}

.element {
    float: left;
    margin-left: -4px;
    position: relative; /* Fixes clipping issue in IE 6 */
}
</style>

...

<div class="parent">
    <div class="element">Element</div>
</div>

只有在父元素hasLayout(这是一个太大的蠕虫进入这里)时才需要这样做。

答案 1 :(得分:1)

<style>
.parent {
    height: 1%;
    overflow: auto;
    _zoom: 1; /*ie6 hack forces has layout*/
}

.element {
    float: left;
    margin-left: -4px;
}
</style>

答案 2 :(得分:0)

这种情况发生在IE6中,负边距与浮动相结合。

如果可以的话,摆脱浮动:

.element {
   float: none:
   zoom: 1;
}