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

Flex容器中的元素未包装

逑阳泽
2023-03-14
问题内容

当我尝试在flex容器中插入块元素时,它们都处在同一行上,就好像它们是行内块一样。

我希望前两个div位于同一行,最后一个位于第二行。可悲的是,这似乎不起作用。

有人知道吗?

<div style="display: flex">

  <div style="display: inline-block">

    This is an inline block element

  </div>

  <div style="display: inline-block">

    This is an inline block element

  </div>

  <div style="display: block">

    This is a block element

  </div>

</div>

问题答案:

flex容器的初始设置为flex-wrap: nowrap。这意味着弹性项目被强制保留在一行中。

您可以使用覆盖默认设置flex-wrap: wrap

display弹性项目的值在弹性布局中被忽略。

一个flex容器,它是带有display: flex或的元素display: inline-flex,可建立一个
flex格式化上下文
。尽管类似于
块格式化上下文

,但还是有所不同。

一个区别是flex容器的子代忽略该display属性。

另一个区别是,在flex容器中,边距不会折叠,并且floatclear属性无效。

Flex容器还带有一些默认设置。其中:

  • justify-content: flex-start -flex项目将堆叠在行的开头
  • flex-shrink: 1 -允许伸缩物品收缩并且不会溢出容器
  • align-items: stretch -伸缩物品将扩展以覆盖容器的横向尺寸
  • flex-direction: row -伸缩项目将水平对齐
  • flex-wrap: nowrap -弹性项目被迫停留在一行

请注意最后两项。

弹性商品将连续排成一行,并且无法包装。

如果要在第一行上包含两个flex项目,在第二行上包含第三项目,则允许容器与成为多行flex-wrap: wrap

.container {

  display: flex;

  flex-wrap: wrap;

}

.box {

  flex: 0 0 45%;

  height: 50px;

  margin: 5px;

  background-color: lightgreen;

  border: 1px solid #ccc;

}


<div class="container">

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

</div>

另外,如果您希望flex容器以内联方式显示,请使用display: inline-flexnot display: flex。这些可与display: inline-block和比较display: block



 类似资料:
  • 要在应用程序中使用Flexbox,您需要使用display属性创建/定义Flex容器。 Usage - display: flex | inline-flex 此属性接受两个值 flex - 生成块级弹性容器。 inline-flex - 生成内联flex容器框。 现在,我们将看到如何使用display属性和示例。 Flex 将此值传递给display属性时,将创建块级Flex容器。 它占用父容

  • dom中有两个 ,我想使用JavaScript/jQuery将这两个 包装到一个包装器div中。 有没有办法这样做? 原来的节点是这样的: 我想在那些周围添加包装器div,它应该如下所示: 上面的插入应该仅来自javascript或jquery。 先谢谢你。

  • 问题内容: 我有几行要在行中居中放置的inline-block元素,我想水平居中。内联块元素都具有相同的固定大小,但我希望居中处理页面大小调整以及添加或删除元素。 为了简化起见,我删除了html /css并删除了居中的尝试。 如果您调整结果窗口的大小,以便第三个内联块元素下降,则容器将填充宽度,我们将得到以下结果: 而不是这样: 根据ptriek关于JavaScript解决方案的答案进行编辑: P

  • 我有一个可弯曲的容器可以包装一些卡片。我已经用flex实现了一个水平滚动器(使用flex-nowrap)。flex包装容器的左间距为36px,右间距为0px。这里的要点是,在最后一张卡片滚动后,我需要有一个36px的右间距。 这是我到目前为止所做的 null null 我给了包装器一个负的右边距,使它看起来像是从右边流动的。滚动/到达最后一个元素后,我希望它看起来像这样,在这里输入图像描述 我注意

  • 我正在visual studio中为wix v3编写一个安装项目。该项目的目的是将一组文件安装到某些目录,然后通过设置元素的值来更改XML文件。在我添加XmlFile元素来编辑XML文件之前,一切都很好。以下是该元素的代码段: 我在构建时遇到的错误是: “片段元素包含未处理的扩展元素‘util:XmlFile’。请确保已提供‘http:⁄schemas.microsoft.com⁄wix⁄Util

  • demo: https://jsfiddle.net/uxc68jop/ 同样的代码在demo中没有问题,在项目中第一个元素width就失效了?