自动换行器

时间:2017-01-21 16:45:40

标签: html css css3 flexbox

在下面的代码中,我有一个带有嵌套flex列容器的flex行容器。在flex列容器中,似乎自动换行不起作用。

.profile-header {
  padding-bottom: 20px;
}

.profile-header-container {
  display: flex;
  justify-content: center;
  border: 1px solid purple;
}

.picture {
  height: 175px;
  width: 175px;
  background-color: orange;
  flex-shrink: 0;
}

.info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.name {
  font-size: 24px;
  border: 1px solid red;
}

.button {
  height: 50px;
  width: 150px;
  background-color: blue;
}
<div class="profile-header">
  <div class="profile-header-container">
    <div class="picture">
      
    </div>
    <div class="info">
      <div class="name">
        reallylongfirstname reallylonglastname
      </div>
      <div class="button">
        
      </div>
    </div>
  </div>
</div>

.name元素似乎不想在Internet Explorer中自动换行,它似乎在chrome中运行良好。我检查了flex bug,特别是bug#2,但设置max-width: 100%似乎没有用。有没有办法让这项工作成功?

jsfiddle

2 个答案:

答案 0 :(得分:1)

您可以使用CSS表格来实现相同的布局。

.profile-header {
  border: 1px solid green;
}
.profile-header-container {
  display: table;
  margin: 0 auto;
  border: 1px solid purple;
}
.picture,
.info {
  display: table-cell;
  vertical-align: middle;
}
.picture {
  display: block;
  height: 175px;
  width: 175px;
  background-color: orange;
}
.info {
  text-align: center;
}
.name {
  font-size: 24px;
  border: 1px solid red;
}
.button {
  display: block;
  height: 50px;
  width: 150px;
  margin: 0 auto;
  background-color: blue;
}
<div class="profile-header">
  <div class="profile-header-container">
    <div class="picture"></div>
    <div class="info">
      <div class="name">
        reallyrealylongfirstname reallyreallylonglastname
      </div>
      <div class="button"></div>
    </div>
  </div>
</div>

<强> jsFiddle

答案 1 :(得分:1)

众所周知,Internet Explorer中的Flex布局存在一些错误。

此处详细介绍了文本换行问题: Why IE11 doesn't wrap the text in flexbox?

IE中的文本换行问题通常通过在正确的位置定义宽度来解决。

在这种特殊情况下,定义文本元素和父元素的宽度似乎可以解决问题。

将此添加到您的代码中:

.info { width: 50%; }

.name { width: 100%; }

revised fiddle