DIV 大于父级,溢出:隐藏;位置:相对[重复]

Posted

技术标签:

【中文标题】DIV 大于父级,溢出:隐藏;位置:相对[重复]【英文标题】:DIV bigger than parent with overflow:hidden; position: relative [duplicate] 【发布时间】:2017-02-06 11:34:05 【问题描述】:

当祖先 DIV 的样式为 overflow: hidden; position: relative; 时,如何显示大于其祖先的 DIV?

这是一个例子:

html

<div class="container">
  <div class="content">
  __________________________SHOW_ME
  </div>
</div>

CSS:

.container 
  position: relative;
  padding: 10px;
  overflow: hidden;
  width: 10em;
  border: 1px solid;
  height: 50px;


.content 
  position: absolute;
  overflow: visible;
  border: 5px solid red;

这是JS Fiddle 上的示例。

我尝试使用position: absoluteoverflow: visibleright: -100px 的各种组合来设置内容 DIV 的样式,但没有帮助。

如何设置内容 div 的样式以使其完全可见? 我不能用container类修改父DIV,只能修改里面的内容。

【问题讨论】:

短版:你不能。长版:您可以使用固定位置,但内容 div 会随着屏幕滚动 我认为,您必须以某种方式将 .container 修改为 overflow:visible 或其宽度 @Pete 谢谢,位置:固定对我有用。你会把它作为答案发布吗? 啊,把它交给 Erikzy - 由于滚动缺陷,我认为这不是一个足够好的解决方案来保证完整的答案 - 如果我要使用 js 来解决这个问题,我会可能只是包装容器并将内容移动到包装器中 为什么你需要(或不能删除)overflow: hidden 在父节点上? 【参考方案1】:

如果您希望内容的位置与容器相关联,除非您使用 javascript 更新滚动位置并将内容的位置设置为固定而不是绝对位置,否则您基本上不能。

【讨论】:

【参考方案2】:

实际上你不能使用overflow:hidden在元素内显示div,但我有解决方案。 你可以用overflow:auto给你的div,这样用户就可以滚动x

Here the example fiddle

【讨论】:

谢谢,但是滚动看起来很难看 :-) 最好的解决方案是更改 .container 中的 overflow:hidden; 为什么不这样做?【参考方案3】:

.container 
  position: relative;
  padding: 10px;
  overflow: hidden;
  width: auto;
  border: 1px solid;
  height: 50px;


.content 
    position: absolute;
    overflow: auto;
    border: 5px solid red;
    width: auto;
    padding: 10px;
<div class="container">
  <div class="content">
        __________________________SHOW_ME
  </div>
</div>

【讨论】:

以上是关于DIV 大于父级,溢出:隐藏;位置:相对[重复]的主要内容,如果未能解决你的问题,请参考以下文章

CSS:如何在一个位置中有位置:绝对 div:相对 div 不会被溢出裁剪:隐藏在容器上

位置绝对和溢出隐藏

div盒子存在阴影导致父级标签出现滚动条

如何向相对 div 溢出父级添加边距以向下移动内容

父级中的div高度溢出[重复]

关于定位那些事儿