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

在包装时使容器收缩以适合子元素

章城
2023-03-14
问题内容

我试图弄清楚flexbox的工作原理(理应工作吗?),如下所示:

.holder {

  width: 500px;

  background: lightgray;

  display: flex;

  flex-direction: row;

  justify-content: space-between;

  flex-wrap: nowrap;

}

.v2 {

  width: 320px;

}

.child {

  display: inline-block;

  border: 1px solid black;

  padding: 30px 0px;

  text-align: center;

}


<div class="holder">

  <div class="child">At a glance</div>

  <div class="child">After coverage ends</div>

  <div class="child">Forms &amp; documents</div>

</div>

<br>

<br>

<div class="holder v2">

  <div class="child">At a glance</div>

  <div class="child">After coverage ends</div>

  <div class="child">Forms &amp; documents</div>

</div>

<br>

<br>

<div class="holder v2">

  <div class="child">At a

    <br>glance</div>

  <div class="child">After coverage

    <br>ends</div>

  <div class="child">Forms &amp;

    <br>documents</div>

</div>

问题是,当有足够的空间容纳元素时,我会得到一个很好的紧身儿童,它们之间的间距均匀。(第一,顶部div块)

但是,如果没有足够的空间并且儿童中的文字开始换行,则所有内容都会朝着怪异的方向前进-
儿童不再紧密贴合,即使在换行后,flex子童周围也有足够的空间,因为不再合适,实际上环绕操作实际上也没有机会工作(第二个div块)

但是,如果我在发生自动换行的地方添加了手动换行,则一切都会按照“应该”的方式进行布局……(底部,第三个方框)

我想要的是始终让孩子们紧紧地放在盒子里(黑色边框),剩下的空间将均匀地分布在它们之间,而无需我添加手动换行符(在我的情况下这不是一种选择) )

可能吗?…


问题答案:

在CSS中,父容器不知道其子容器何时包装。因此,它会继续缩放其大小,而忽略内部发生的事情。

换句话说,浏览器在初始级联上渲染容器。子包装时,它不会重排文档。

这就是为什么容器不收缩包装较窄的布局的原因。就像没有包裹一样,它继续进行下去,如右边的保留空间所证明的。

水平空白区域的最大长度是容器预期在其中存在的元素的长度。

在下面的演示中,可以在水平调整窗口大小时看到空白的来来去去:DEMO

在处理换行文本时,text-align: right在某些情况下,将其放在容器上可能会有所帮助。



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

  • 问题内容: 这是给我麻烦的代码。 如果我用标签注释掉行,则框架显示为正确的宽度。但是,添加标签似乎将框架缩小到标签的大小。有办法防止这种情况发生吗? 问题答案: 默认情况下,以及 缩小或放大一个小部件,以适应其内容 ,这是你想要什么的时候99.9%。描述此功能的术语是“几何传播”。还有一个命令以打开几何传播或使用时关闭(和类似的一个为)。 由于您使用的是pack,因此语法为: 或也许,取决于您实际

  • 我有一个固定高度和宽度的flexbox容器,里面有一些灵活的行,每个行都包含SVG对象。 当我向一行添加更多SVG时,该行中的其他SVG将收缩以适应容器的宽度。但是,如果我添加更多行,它们不会收缩以适合容器,而是溢出。 我如何才能防止这种行为,而不是让行适当地收缩以适应容器内的情况? 示例代码(第一行显示水平收缩;请注意,下面两行溢出了div页面容器):

  • 我正在使用Shrinkwrap解析DAO中的.xml 我在测试中得到2个错误: java.lang.NoClassDefoundError 而且 java.lang.RuntimeException:无法调用部署方法 我有一些DAO测试在工作,但是当a继续编写剩余的测试时,这个错误开始了,并且影响了我正在编写的测试和之前正常的测试。 我更改了一些内容:我使用了,而不是添加了一百万个。 我最好的猜测

  • 问题内容: 如果内容因屏幕宽度而断线,如何获取适合其内容宽度的元素? 我想不出如何表达这个问题,听起来似乎很简单,但是我整理了一个简单的插图。 问题答案: 你不能 默认情况下,元素具有缩小到适合的宽度: 收缩至配合宽度为: 。 然后, 当为时,宽度将为您所希望的。 当为时,宽度将为您所希望的。 当,宽度将是,即使你不喜欢它。 如果您确实不希望这样做,我想您可以使用JS 添加事件侦听器,然后手动设置

  • 问题内容: 签入node_module是社区标准,但现在我们也可以选择使用wrapwrap。后者对我来说更有意义,但是总会有人进行“强制发布”并引入错误。还有其他缺点吗? 问题答案: 我最喜欢的关于这个主题的文章/哲学可以追溯到2011年(在node.js领域很长一段时间): https://web.archive.org/web/20150116024411/http://www.futurea