弹性框文字项目溢出

阿林·普卡鲁(Alin Purcaru)

谁能解释为什么不能正确计算包含文本的列的宽度以完全包含每个列中的文本?在Firefox和Chrome上,第一列和第三列中的文本不适合这些框,但是令人惊讶的是,这些框在IE 11中的尺寸正确吗?

这是浏览器错误吗?

.box {
    display: flex;
    border: 1px solid #dbdbdb;
    height: 100px;
}
.box > div {
    border: 1px solid Pink;
}
<div class="box">
    <div>Firstitem</div>
    <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
    <div>Lastitem</div>
</div>

我对替代品不感兴趣。我想知道发生这种情况的原因。(这就是为什么我将这种情况简化为非常基本的原因。)

谢谢!

霍尔伯特

这是在Chrome和Firefox 33中发生的情况:

  1. 每个flex项都会建立一个flex base size,在这种情况下就是它们max-content width的宽度(如果所有文本基本上都放在一行上,则宽度)。请注意,对于中间伸缩项目,这是巨大的。
  2. flex容器尝试为每个flex项提供他们所请求的flex base size,但是没有足够的空间(因为第二个是贪婪的)。因此,我们进入“缩小”模式。
  3. 默认情况下,每个弹性项目都具有flex-shrink:1-以便每个弹性项目都接收一部分负自由空间,以使它们总和为正确的最终大小。(每件物品收到的数量与它们的成正比flex-shrink,也与它们的成正比flex base size,因此,大件物品比小件物品收缩更多。)

因此,每个flex项目最终都会缩小到比其所请求的要小的一点flex base size,这意味着第一个和最后一个项目都有一些溢出,而中间的项目则必须换行(可怜的东西)。

如评论中所指出的,该规范(相对较近)min-width为flex项目添加了默认值,通常以它们的默认值min-content width(如果采用了所有可选换行符,则为默认宽度)-并且可以防止flex项目缩小到最小尺寸以下。在Firefox 34中添加了对此的支持,并且我相信IE在其当前的“技术预览”中也支持此功能。我不确定WebKit / Blink何时增加支持-几个月前提交了一个错误,以确保至少在Chrome团队的关注下。

无论如何-如果您想在尚不支持的浏览器中解决此问题min-width:auto,只需flex:none在您不希望收缩的flex项目上设置-代码段中的第一项和最后一项。将它们的flex-shrink清零,这意味着在上面的步骤3中,中间flex项目将获得所有负数空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

弹性框文字项目溢出

来自分类Dev

多行文字溢出,包含不可缩小的项目(弹性框)

来自分类Dev

弹性框防止溢出并保持右项目固定宽度和左项目收缩

来自分类Dev

弹性框边距导致溢出

来自分类Dev

IE11 弹性项目垂直溢出

来自分类Dev

尽管具有溢出属性,但内容溢出的弹性项目

来自分类Dev

使弹性项目具有100%的高度并溢出:滚动

来自分类Dev

为什么空格会使弹性项目在左侧溢出?

来自分类Dev

如何防止弹性项目的高度因其内容而溢出

来自分类Dev

弹性项目溢出容器时更改正当内容值

来自分类Dev

溢出:滚动不适用于弹性项目

来自分类Dev

弹性框项目的宽度缩小到文本

来自分类Dev

为每个弹性框项目创建不同的背景颜色

来自分类Dev

弹性框项目向右浮动不起作用

来自分类Dev

如何在具有多个弹性项目的弹性框中将元素浮动到右侧

来自分类Dev

在弹性项目中将文字垂直和水平居中

来自分类Dev

防止弹性物品溢出容器

来自分类Dev

反应:仅显示完全适合弹性框的项目,并动态确定要显示的项目数

来自分类Dev

带有弹性框的粘性页脚和带有溢出的主体:在非 webkit 浏览器上自动中断

来自分类Dev

Firefox:中心弹性框

来自分类Dev

弹性项目之间的空间

来自分类Dev

可以使用哪个CSS选择器来选择处于包装状态的弹性框项目?

来自分类Dev

为什么弹性框项目图像会根据其初始大小而改变大小?

来自分类Dev

弹性框根据屏幕分辨率对特定项目进行分组

来自分类Dev

CSS 弹性框 - 如何使项目垂直居中并具有全高背景

来自分类Dev

如何将弹性框中的文本隐藏起来,然后将其悬停在弹性框项目上时显示?

来自分类Dev

如何在弹性容器内保持“溢出”?

来自分类Dev

div显示弹性文字

来自分类Dev

Android布局框溢出

Related 相关文章

  1. 1

    弹性框文字项目溢出

  2. 2

    多行文字溢出,包含不可缩小的项目(弹性框)

  3. 3

    弹性框防止溢出并保持右项目固定宽度和左项目收缩

  4. 4

    弹性框边距导致溢出

  5. 5

    IE11 弹性项目垂直溢出

  6. 6

    尽管具有溢出属性,但内容溢出的弹性项目

  7. 7

    使弹性项目具有100%的高度并溢出:滚动

  8. 8

    为什么空格会使弹性项目在左侧溢出?

  9. 9

    如何防止弹性项目的高度因其内容而溢出

  10. 10

    弹性项目溢出容器时更改正当内容值

  11. 11

    溢出:滚动不适用于弹性项目

  12. 12

    弹性框项目的宽度缩小到文本

  13. 13

    为每个弹性框项目创建不同的背景颜色

  14. 14

    弹性框项目向右浮动不起作用

  15. 15

    如何在具有多个弹性项目的弹性框中将元素浮动到右侧

  16. 16

    在弹性项目中将文字垂直和水平居中

  17. 17

    防止弹性物品溢出容器

  18. 18

    反应:仅显示完全适合弹性框的项目,并动态确定要显示的项目数

  19. 19

    带有弹性框的粘性页脚和带有溢出的主体:在非 webkit 浏览器上自动中断

  20. 20

    Firefox:中心弹性框

  21. 21

    弹性项目之间的空间

  22. 22

    可以使用哪个CSS选择器来选择处于包装状态的弹性框项目?

  23. 23

    为什么弹性框项目图像会根据其初始大小而改变大小?

  24. 24

    弹性框根据屏幕分辨率对特定项目进行分组

  25. 25

    CSS 弹性框 - 如何使项目垂直居中并具有全高背景

  26. 26

    如何将弹性框中的文本隐藏起来,然后将其悬停在弹性框项目上时显示?

  27. 27

    如何在弹性容器内保持“溢出”?

  28. 28

    div显示弹性文字

  29. 29

    Android布局框溢出

热门标签

归档