当前位置: 首页 > 面试题库 >

如何使Flexbox子代的父母身高达到100%?

祝宾白
2023-03-14
问题内容

我正在尝试在Flexbox中填充Flex项目的垂直空间。

.container {

  height: 200px;

  width: 500px;

  display: flex;

  flex-direction: row;

}

.flex-1 {

  width: 100px;

  background-color: blue;

}

.flex-2 {

  position: relative;

  flex: 1;

  background-color: red;

}

.flex-2-child {

  height: 100%;

  width: 100%;

  background-color: green;

}


<div class="container">

  <div class="flex-1"></div>

  <div class="flex-2">

    <div class="flex-2-child"></div>

  </div>

</div>

flex-2-child 不能满足要求的高度,但以下两种情况除外:

  1. flex-2 的高度为100%(这很奇怪,因为弹性商品默认情况下为100%,而且在Chrome中存在错误)
  2. flex-2-child 绝对位置也不方便

目前,该功能不适用于Chrome或Firefox。


问题答案:

采用 align-items: stretch

与David Storey的答案类似,我的解决方法是:

.flex-2 {
    display: flex;
    align-items: stretch;
}

或者到align-items,你可以使用align-self只是在.flex-2-child你想拉长项目。



 类似资料:
  • 问题内容: 我试图了解什么对我来说似乎是意外的行为: 我在容器内有一个最大高度为100%的元素,该元素也使用最大高度,但是,出乎意料的是,子代溢出了父代: 但是,如果给定父级的显式高度,则此问题已解决: 有谁知道为什么孩子在第一个例子中不尊重父母的最大身高?为什么需要一个明确的高度? 问题答案: 当您指定的百分比上一个孩子,这是父母的实际高度的百分比,而不是父母的,奇怪的。同样适用于。 因此,如果

  • 问题内容: 我通过设置找到了一种使div容器至少占据整个页面高度的方法。但是,当我添加一个嵌套div和set时,它不会扩展到容器的高度。有办法解决吗? 问题答案: 这是一个已报告的Webkit(chrome /safari)错误,具有最小身高的父母的孩子不能继承height属性: : 显然Firefox也受到了影响(目前无法在IE中进行测试) 可能的解决方法: 添加位置:相对于#containme

  • 问题内容: 我有一排2列。在这些列中,我有一个标题,内容和列表。它们具有不同的内容长度。 我要实现的是,该列表在同一行上彼此相邻,而不会破坏引导程序移动优化。 我首先尝试了3个不同的行,但是当列断开时,内容不再属于彼此。没有JavaScript,有没有我需要的解决方案?也许以某种方式使用flexbox? 这是我当前的代码: 问题答案: 为了能够实现这一目标,而无需使用脚本,所有项目(,,,)需要

  • 问题内容: 我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中? 这是代码: HTML CSS 这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。 有简单的解决方法吗? 请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。 问题答案: 如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。 绝对

  • 在像这样的简单示例中,子边距不会影响父级高度: JSFiddle:http://jsfiddle.net/k1eegxt3/ 默认情况下,子页边距不会分别影响父级高度和父级尺寸。通常,可以通过在父元素中添加边距可以“推”到的内容来轻松修复,例如,向父元素添加填充或边框 JSFIDLE(JSIDLE):http://jsfiddle.net/fej3qh0z/ 我想知道为什么会这样,而不仅仅是它是如

  • 我正在玩flexbox,我的flex项似乎溢出了它的父容器。我能做些什么来确保它能呆在它的范围内? 抱歉,它有点长:) 但我正试图垂直列出一些控件,我想在一行上订购两个控件<因此,UL以一个灵活的方向(柱)和LI的方向(水平)保存所有内容 但是,即使控件嵌套在具有设置宽度的div中,它们仍然在其边缘上运行。有谁能给我一些建议,说明我应该做些什么:)<谢谢!