position:absolute溢出处理

今天在作布局的时候发现把table设置了position:absoluteoverflow竟然无论用了,溢出的部分依然溢出。布局

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

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

简单说,blog

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

因此解决办法,io

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

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

下面引用一个例子:百度

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

效果图:引用

请原谅我懒的本身写demo。借下别人的demo用用。

相关文章
相关标签/搜索