如何忽略父元素的溢出:隐藏在css中

Joh*_*ohn 34 css overflow

我有一个div元素包装其他div元素,如下所示:

<div style="overflow:hidden">
    <div id="a"></div>
    <div id="b"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我有其他css规则来管理外部div的维度.在我的实际代码中,我想将div #a放在外部div下方10 xx处.但是,我希望div#b仍然被外部div的溢出切断:隐藏.

实现这一目标的最佳方法是什么?

par*_*ent 78

方法1

一个好方法是将溢出元素设置为position:fixed(这将使其忽略父溢出),然后使用此技术将其相对于父元素定位:

?.parent {
   position: relative;      
   .fixed-wrapper {
       position: absolute;         
       .fixed {
           position: fixed;
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是,您不能在固定元素上设置任何顶部,右侧,左侧,底部属性(它们必须都是默认的"自动").如果您需要稍微调整位置,可以使用正/负边距代替.

方法2

我最近发现的另一个技巧是保持overflow:hidden元素,position:static并将覆盖元素相对于更高的父元素(而不是overflow:hidden父元素)定位.像这样:

http://jsfiddle.net/kv0bLpw8/

  • 在小提琴中有趣的选择“忽略溢出”类名。 (8认同)
  • 方法1有效但如果用户滚动页面可能会产生奇怪的结果.登陆这个答案的人:请务必查看方法2下的JSFiddle - 它非常简单,效果很好! (3认同)
  • 方法 1 还有一个警告:不能在溢出的元素上设置任何变换 (2认同)
  • 如果容器有滚动条,播放效果不好 (2认同)