我有以下布局:

.wrapper {
  display: flex;
  flex-direction: column;
  border: 1px solid red;
  width: 200px;
  height: 200px;
}

.cotnainer {
}

.long-content {
}

.content {
  overflow-y: auto;
}
<div class="wrapper">
  <div class="container long-content">
    <div class="header">Some Header</div>
    <p class="content">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    <p>
  </div>
  <div class="container">
    Some content
  </div>
  <div class="container">
    Some content
  </div>
</div>

如何在没有设置高度的情况下使.content个元素和overflow-y: auto个元素收缩,从而使所有.container个元素都位于flex父元素中?

推荐答案

您可以将长内容容器上的min-height=0设置为shrink over its content height.但是,在长内容上设置溢出并在头中添加position: sticky;可能更有意义.

.wrapper {
  display: flex;
  flex-direction: column;
  border: 1px solid red;
  width: 200px;
  height: 200px;
}

.container {}

.long-content {
  min-height: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid blue;
}

.content {
  overflow-y: auto
}
<div class="wrapper">
  <div class="container long-content">
    <div class="header">Some Header</div>
    <p class="content">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
      takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
      et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    </p>
  </div>
  <div class="container">
    Some content
  </div>
  <div class="container">
    Some content
  </div>
</div>

Html相关问答推荐

Flexbox嵌套div溢出

使用网格时图像溢出容器高度

Div内容防止同级大小增加

如何在元素的三条边中间换行边框?

如何在用css使用网格视图时设置宽度?

响应CSS中的两到三列布局

Vutify中看不见的V行

SVG的动态CSS

Tailwind CSS 忽略我的元素的填充

无法在 CSS 中将 h1 标签居中

Github上部署需要花费几小时时间:等待github pages部署批准

当我将有序列表居中时,数字会跑到列表的另一行

如何调整底部有 SVG 的元素的高度,使其在所有宽度上看起来都不错?

如何将背景与之前的内容正确对齐

屏幕缩小时背景图像裁剪高度

如何在Bootstrap卡片底部添加波浪形状

th 内的 div 标签没有占据全高

父背景仅在子元素中可见

如何使用 :before 在 CSS 中为列表增加计数器

我如何使用 HTML 和 CSS 在我的下拉菜单中获得这种类型的样式