当前位置: 首页 > 知识库问答 >
问题:

高度100%在flexbox列子[重复]

喻昀
2023-03-14

我在flexbox列中遇到了问题,flex元素的子元素对高度的响应不符合百分比。我只在Chrome中检查过这个,据我所知,这是Chrome唯一的问题。下面是我的例子:

超文本标记语言

<div class='flexbox'>
  <div class='flex'>
    <div class='flex-child'></div>
  </div>
  <div class='static'></div>
</div>

CSS

.flexbox{
  position:absolute;
  background:black;
  width:100%;
  height:100%;

  display: flex;
  flex-direction:column;
}

.flex{
  background:blue;
  flex:1;
}

.flex-child{
  background:red;
  height:100%;
  width:100%;
  display:block;
}

.static{
  background:green;
  width:100%;
  height:5rem;
}

这是代码笔。

我想要它,所以红色的。flex child填充蓝色。flex。为什么高度:100%不起作用?


共有1个答案

梁丘德寿
2023-03-14
匿名用户

TL; DR:将. flex设置为show: flex,并删除. flex-child上的高度: 100%。您可以在这里看到修改后的CodePen。

工作原理:

我从这个类似的问题中了解到,根据flexbox规范,align self:stretch值(flex'd元素的默认值)只更改元素的交叉大小属性的使用值(在本例中,height)。但是,百分比是根据父对象的“交叉大小”属性的指定值计算的,而不是它的“已使用”值。如果您打开检查器,在“样式”下查看高度:100%,但在“计算”下查看高度:1200px,则分别显示指定值和使用值。

在这方面,铬合金似乎符合T形三通的规格。这意味着在上设置高度:100%。柔性子项表示指定的高度的100%。flex。因为我们没有在上指定高度。flex,这意味着我们获得了默认高度的100%,即自动。查看布局引擎为何变得混乱?

设置。flex显示:flex并从中删除高度:100%。flex child(这样它就不会一直尝试将自动设置为100%)将使。弹性子项填充所有。flex

当这不起作用时:

如果您试图只填充. flex中的一些,例如。试图将. flex-child设置为高度: 90%,这将不起作用,因为灵活的子元素意味着它将填充所有可用的空间。我以为你可以用绝对定位破解它,但那似乎也不起作用。您可以通过添加第二个孩子到. flex,我们将其称为。间隔,并将。间隔设置为flex: 1。flex-child设置为flex: 9(请务必在. flex上设置flex-方向:列。黑客攻击,但我唯一能修复它的方法。这是代码笔。

希望我们不必一直依赖于此,他们只需更改规范,使其更符合预期。

 类似资料:
  • 问题内容: 我在flexbox列上遇到了麻烦,因为flex’d元素的子元素无法以百分比响应。我仅在Chrome浏览器中进行了检查,据我了解,这只是Chrome浏览器的问题。这是我的示例: HTML CSS 我想要它,以便红色填充蓝色。为什么不起作用? 问题答案: TL; DR: 设置为,并摆脱on 。[您可以在此处查看修改后的CodePen。] 工作原理: 我从这个类似的问题中学到,根据flexb

  • 我有一个问题,我假设将是一个相对简单的CSS布局。 我想要。。。 底部的页脚(固定高度) 左侧的导航条(固定宽度) 右侧的外部内容窗格(动态大小) 在内容窗格中。。。 顶部的缎带(固定高度) 内部内容div(动态大小) 我正在尝试使用flexbox来实现这一点,因为它似乎是目前最好的选择(网格太不稳定,并且没有得到很好的支持)。 问题是,我的内部内容div(实际上)在外部内容div中有好几层。这意

  • 在另一个flex容器内的Flexbox列容器在Chrome中没有得到100%的高度,但在Firefox和Edge中都可以。 Codepen示例

  • 问题内容: 我使用此 CSS将最大高度设置为 谁能给我一个普遍的答案, 和 之间有什么区别? 问题答案: 这是W3Clink的解释: 以下算法描述了两个属性[min-height和max-height]如何影响’height’属性的使用值: 临时使用的高度是根据上面“计算高度和边距”下的规则计算的(不包括“最小高度”和“最大高度”)。 如果此暂定高度大于“最大高度”,则会再次应用上述规则,但是这次

  • 我正在使用flexbox搭建一个网站的基本用户界面。与通常的电子邮件布局非常相似。 出于某种原因,列布局flexbox容器(,梅花色)的第二个子项(class,lightseagreen color)比其父项的高度更高,我不希望它这样做。 我制作了一个代码笔片段来显示这种行为。 我怎样才能防止绿色的孩子比它的李子父母有更高的身高?我希望孩子只是可以滚动,但不能比父母高。

  • 我已经读了几篇flexbox教程,但我仍然无法使这个简单的任务发挥作用。 我怎样才能使红框达到100%的宽度? 代码: 样式: 谢谢! 更新1:Nishanth Shankar的建议,为包装器添加flex:1,flexDirection:'row' 输出: 代码:

  • 我在flexbox数组中有一系列元素。每个元素都包含一张“卡片”,其高度各不相同。当我试图让卡片占据它们所在的flexbox子元素的剩余空间时,它们会溢出到下面一行的元素中。如果我指定所有flex子项都是100%高度,那么它们的高度实际上会折叠为它们内部卡的大小。 蓝色卡片的高度为100%。从字面上看,它们的高度是父母的100%,但这意味着它们会溢出。 我怎样才能让他们只扩展到他们父母的底部呢?

  • 问题内容: 我正在尝试在Flexbox中填充Flex项目的垂直空间。 不能满足要求的高度,但以下两种情况除外: 的高度为100%(这很奇怪,因为弹性商品默认情况下为100%,而且在Chrome中存在错误) 绝对位置也不方便 目前,该功能不适用于Chrome或Firefox。 问题答案: 采用 与David Storey的答案类似,我的解决方法是: 或者到,你可以使用只是在你想拉长项目。