在下面的代码中,我有一个带有嵌套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%
似乎没有用。有没有办法让这项工作成功?
答案 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%; }