css - 容器内绝对定位元素溢出 : auto

标签 css

我们有一个带有 position: fixedoverflow-y: auto 的模态。

当我们有很多组件从显示滚动条开始溢出时,这很有效。

但是,当我们在打开弹出/下拉日历的模式中有一个自定义日历字段并且该元素位于容器一侧的外部时,它不会显示。

screenshot

有没有办法在保持模态的 overflow-y: auto 的同时显示弹出/下拉菜单?像这样:

screenshot2

Codepen 详述:http://codepen.io/anon/pen/jWmNMa

.modal {
  position: fixed;
  background-color: pink;
  height: 200px;
  width: 200px;
  left: 30%;

  /* comment out this to show dropdown*/
  overflow: auto;
}

.dropdown {
  background-color: lime;
  height: 80px;
  width: 80px;
  position: absolute;
  left: -50px;
}

html:

<div class="modal">
  <div class="dropdown">
    This is content in a dropdown.
  </div>
  Long long overflowing text...
</div>

最佳答案

在您的情况下,绝对 定位的子元素不可能出现在父元素之外 .modaloverflow: auto 时的元素在其上设置(除非您将 position 元素的 .dropdown 设置为 fixed )。

最简单的解决方法是将文本和其他内容换行,然后设置 overflow: auto在那个元素上。例如,您可以用 .content 包装它元素,然后设置 height: 100%overflow: auto为了添加滚动条并隐藏那些特定元素的溢出。

Updated Example

<div class="modal">
  <div class="dropdown">
    This is content in a dropdown.
  </div>
  <div class="content">...</div>
</div>
.modal {
  position: fixed;
  background-color: pink;
  height: 200px;
  width: 200px;
  left: 30%;
}
.modal .content {
  height: 100%;
  overflow: auto;
}

关于css - 容器内绝对定位元素溢出 : auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658478/

相关文章:

css - webkit 浏览器中输入元素的垂直填充无效

jquery - 显示默认图标,如果在 div 上设置了类,则替换图标

html - div 中的 CSS 滚动条在 FF 中不起作用

javascript - 在 jQuery 中滚动时如何防止重复事件?

php - wordpress 中的 Minimatica 主题使页面比内容更宽,显示滚动条

javascript - WordPress 在服务器上安装后不加载 css 和 js 文件

jquery - 无法在 Bootstrap 3 中获得带有图标效果的输入

html - CSS - 如何使我输入的文本开始显示在框的左上角?

css - 我怎样才能让第二个 div 行忽略父 div 的宽度

导航上的 CSS 自适应颜色幻灯片