代码之家  ›  专栏  ›  技术社区  ›  Paul D. Waite

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

  •  1
  • Paul D. Waite  · 技术社区  · 16 年前

    我有一个元素通过负利润定位在它的父元素之外,如下所示:

    <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 回复  |  直到 14 年前
        1
  •  5
  •   Paul D. Waite    16 年前

    赋值 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>
    

    只有当父元素具有布局(这太大了,一罐蠕虫无法进入)时才需要这样做。

        2
  •  1
  •   Paul D. Waite    14 年前
    <style>
    .parent {
        height: 1%;
        overflow: auto;
        _zoom: 1; /*ie6 hack forces has layout*/
    }
    
    .element {
        float: left;
        margin-left: -4px;
    }
    </style>
    
        3
  •  0
  •   Eystein    15 年前

    这种情况发生在IE6中,负利润加上浮动。

    如果可以,去掉浮球:

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