Flex容器中的文本不会在IE11中换行

Mis*_*hko 153 css internet-explorer css3 flexbox internet-explorer-11

请考虑以下代码段:

.parent {
  display: flex;
  flex-direction: column;
  width: 400px;
  border: 1px solid red;
  align-items: center;
}
.child {
  border: 1px solid blue;
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在Chrome中,文本按预期包装:

在此输入图像描述

但是,在IE11中,文本没有包装:

在此输入图像描述

这是IE中的已知错误吗?(如果是,将指示指针)

有一个已知的解决方法吗?


这个类似的问题没有明确的答案和官方指针.

Mic*_*l_B 240

将其添加到您的代码中:

.child { width: 100%; }
Run Code Online (Sandbox Code Playgroud)

我们知道块级子级应该占据父级的全宽.

Chrome了解这一点.

无论出于何种原因,IE11都需要一个明确的请求.

使用flex-basis: 100%flex: 1也有效.

.parent {
  display: flex;
  flex-direction: column;
  width: 400px;
  border: 1px solid red;
  align-items: center;
}
.child {
  border: 1px solid blue;
  width: calc(100% - 2px);       /* NEW; used calc to adjust for parent borders */
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
  <div class="child">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

注意:有时需要对HTML结构的各个级别进行排序,以确定哪个容器可以获取width: 100%.CSS包装文本在IE中不起作用

  • 我不得不加宽:100%; 到了父母.根据上下文,此错误似乎有各种修复.感叹IE! (11认同)
  • 而是在.child上使用"max-width:100%". (6认同)
  • 我正在使用flex创建一个表(每行都是一个flex,它的子代具有:`flex:1 1 50%; display:flex; align-items:center;`。毫不奇怪,IE会失败,而长时间自动换行设置“ width:100%”有效,但设置“ min-width:100%`则无效”,它应该可以,但不可行(就像IE一样),所以我尝试了“ max-width:99” %`,而且令人惊讶的是,它确实可行,我认为使用width:100%可能更好? (2认同)

And*_*dry 34

我有同样的问题,关键是元素没有调整其宽度到容器.

而不是使用width:100%,保持一致(不要混合浮动模型和flex模型)并通过添加以下来使用flex:

.child { align-self: stretch; }
Run Code Online (Sandbox Code Playgroud)

要么:

.parent { align-items: stretch; }
Run Code Online (Sandbox Code Playgroud)

这对我有用.

  • 是的,这个答案也很有意义(并且可能比宽度更正确)。在我的一个设计中,设置 width:100% 是不可能的,这个解决方案很有效。 (2认同)

dud*_*ude 9

正如Tyler在其中一条评论中建议的那样,使用

max-width: 100%;
Run Code Online (Sandbox Code Playgroud)

对孩子可能有用(为我工作).使用align-self: stretch只有当你不使用的作品align-items: center(我做了).width: 100%只有在您想要并排显示的Flexbox中没有多个子项时才有效.


小智 6

嗨,我不得不将100%的宽度应用于其祖父母元素。不是其子元素。

.grandparent {
    float:left;
    clear: both;
    width:100%; //fix for IE11 text overflow
}

.parent {
    display: flex;
    border: 1px solid red;
    align-items: center;
}

.child {
    border: 1px solid blue;
}
Run Code Online (Sandbox Code Playgroud)