【问题标题】:DIV bigger than parent with overflow:hidden; position: relative [duplicate]DIV 大于父级,溢出:隐藏;位置:相对[重复]
【发布时间】: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 在父节点上?

标签: css


【解决方案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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多