Html Flex内容不适合父内容的高度

Html Flex内容不适合父内容的高度,html,css,flexbox,Html,Css,Flexbox,我有以下布局,它是一个包装器(内容),其中包含一些其他div,这些div还具有一些flex属性 从下面的链接中可以看到,内容中的div现在随着内容的大小而增大 .content{ 宽度:100%; 高度:400px; 显示器:flex; 溢出:自动; 背景颜色:蓝色; } .a{ 宽度:165px; 身高:100%; 柔性生长:1; 背景色:红色; } .b{ 宽度:65px; 显示器:flex; 填充顶部:20px; 垫底:20px; 证明内容:中心; 背景颜色:黄色; 身高:100%; }

我有以下布局,它是一个包装器(内容),其中包含一些其他div,这些div还具有一些flex属性

从下面的链接中可以看到,内容中的div现在随着内容的大小而增大

.content{
宽度:100%;
高度:400px;
显示器:flex;
溢出:自动;
背景颜色:蓝色;
}
.a{
宽度:165px;
身高:100%;
柔性生长:1;
背景色:红色;
}
.b{
宽度:65px;
显示器:flex;
填充顶部:20px;
垫底:20px;
证明内容:中心;
背景颜色:黄色;
身高:100%;
}
c{
宽度:165px;
柔性生长:1;
右边距:15px;
背景颜色:绿色;
身高:100%;
}

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它有
不仅存活了五个世纪,而且飞跃到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着桌面出版而流行
Aldus PageMaker等软件,包括Lorem Ipsum版本。Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪一台未知的打印机使用Lorem Ipsum以来,Lorem Ipsum一直是业界的标准虚拟文本
一个铅字的厨房,把它翻成一本铅字样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着Letraset床单的发行而流行起来
包含Lorem Ipsum文章,最近使用的是Aldus PageMaker等桌面发布软件,包括Lorem Ipsum版本。
s
C

您的
.a
溢出到
.content
中,这就是您看到底部显示蓝色部分的原因

通过给
.a
或者更确切地说,所有子
div
自动溢出,它们将跟随父级的高度,避免内容溢出

不过,它会引入一个滚动条。如果您对隐藏溢出的文本感到满意,可以使用
overflow:hidden

.content{
宽度:100%;
高度:400px;
显示器:flex;
溢出:自动;
背景颜色:蓝色;
}
.content>div{
溢出:自动;
}
.a{
宽度:165px;
身高:100%;
柔性生长:1;
背景色:红色;
}
.b{
宽度:65px;
填充顶部:20px;
垫底:20px;
背景颜色:黄色;
}
c{
宽度:165px;
右边距:15px;
柔性生长:1;
背景颜色:绿色;
身高:100%;
}

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它有
不仅存活了五个世纪,而且飞跃到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着桌面出版而流行
Aldus PageMaker等软件,包括Lorem Ipsum版本。Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪一台未知的打印机使用Lorem Ipsum以来,Lorem Ipsum一直是业界的标准虚拟文本
一个铅字的厨房,把它翻成一本铅字样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着Letraset床单的发行而流行起来
包含Lorem Ipsum文章,最近使用的是Aldus PageMaker等桌面发布软件,包括Lorem Ipsum版本。
s
C

您可以尝试:

flex: 1 1 auto
它的大小取决于宽度/高度属性

退房

编辑

移除flex grow:1,它将是您需要的高度

.content {


width: 100%;
  height: 400px;
  overflow: auto;
  background-color: blue;
}

.inner{
  display: flex;
}

.a {
  width: 165px;
  background-color: red;
}

.b {
  width: 65px;
  display: flex;
  padding-top: 20px;
  padding-bottom: 20px;
  justify-content: center;
  background-color: yellow;
}

.c {
  width: 165px;
  margin-right: 15px;
  background-color: green;
}

我认为解决你问题的最好办法是

  • 移动
    溢出:自动
    .content
    类到它的子类
  • 改变
    高度:400px至<代码>最小高度:400px如果容器大于400px没有问题
    
  • 添加高度为400px的包装器
    div
    溢出:自动.content
    进行编码>并从
    .content
    中删除这两条规则(imo是最佳选择)

从.a.b.c.中删除
显示:flex
高度:100%
,然后将元素包装在div中并给它一个显示flex

工作代码:

.content{
宽度:100%;
高度:400px;
溢出:自动;
背景颜色:蓝色;
}
.内部{
显示器:flex;
}
.a{
宽度:165px;
柔性生长:1;
背景色:红色;
}
.b{
宽度:65px;
显示器:flex;
填充顶部:20px;
垫底:20px;
证明内容:中心;
背景颜色:黄色;
}
c{
宽度:165px;
柔性生长:1;
右边距:15px;
背景颜色:绿色;
}

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它有
不仅存活了五个世纪,而且飞跃到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着桌面出版而流行
像Aldus PageMak这样的软件