position:absolute溢出处理

时间:2025-01-05 21:02:56

今天在做布局的时候发现把table设置了position:absolute后 overflow居然不管用了,溢出的部分依然溢出。

百度后,才想起来... ...

position后,元素已经和父元素不在一个流里面了,而overflow只能对在同一流中的元素起作用。

简单说,

就是 table 已经是移民火星了,而table外面的div 依然还在地球,那么身在地球的div自然是管不了身在火星的table咯。

所以解决办法,

既然table移民了,那么它爹div也跟着移个民不就可以管着table了吗?

当子元素改变当前流后,父元素也跟着改变当前流,那么overflow就可以生效了。

下面引用一个例子:

<style>  

.box{  

    width:200px;  

    height:150px;  

    overflow:hidden;  

    border:2px solid #000;  

    float:left;  

    margin-right:20px;  

}  

.relative{  

    position:relative;  

}  

.div{  

    width:200px;  

    height:100px;  

    background:#FF5400;  

    margin-top:100px;  

    position:absolute;  

}  

.zi{  

    width:200px;  

    height:300px;  

    background:#FF0000;  

}  

</style>  

<div class="box">  

高300px的子元素溢出隐藏  

<div class="zi"></div>  

</div>  

<div class="box">  

不带relative  

<div class="div"></div>  

</div>  

<br><br><br><br><br><br>  

<div class="box relative">  

带上relative  

<div class="div"></div>  

</div>  

效果图:

position:absolute溢出处理

请原谅我懒的自己写demo。借下别人的demo用用。