我们有带有flex-basis: auto的父容器;在最后一个父容器的内部,我们有一些带有flex-basis: 0的flexbox计数;问题是最后一个父容器的行为就像他是空的。这种情况只发生在IE(11)中。
请分享一些技巧来修复它。
小提琴手:https://fiddle.sencha.com/#view/editor&fiddle/2slv
以下是文本示例:
-div:flex-basis=auto
-div:flex-basis=auto
-div:flex-basis=auto
--div:flex-basis=0IE11在计算顶层div的宽度时不考虑二级div内容宽度。
.container {
display: flex;
background: #cccccc;
width: 50%;
}
.container > * {
flex: 1 1 auto;
}
.first {
background: #00ffff;
}
.last {
background: #ff00ff;
display: flex;
}
.btn {
flex: 1 1 0%;
display: flex;
height: 30px;
}
.btn-inner {
flex: 1 1 0px;
background: rgba(0,0,0,0.2);
display: flex;
}
.inner-inner {
flex: 1 1 auto;
}<div class="container">
<div class="first">
<input type="text" \>
</div>
<div class="empty"></div>
<div class="last">
<div class="btn">
<div class="btn-inner">
first item item
</div>
</div>
<div class="btn">
<div class="btn-inner">
second item item
</div>
</div>
</div>
</div>
发布于 2019-05-30 21:04:13
尝试设置.container类的最小宽度属性,并将IE浏览器的flex-basis属性从0更改为"auto“。
代码如下:
<style>
.container {
display: flex;
background: #cccccc;
width: 50%;
min-width:300px;
}
.container > * {
flex: 1 1 auto;
}
.first {
background: #00ffff;
}
.last {
background: #ff00ff;
display: flex;
}
.btn {
flex: 1 1 0%;
display: flex;
height: 30px;
}
.btn-inner {
flex: 1 1 0px;
background: rgba(0,0,0,0.2);
display: flex;
}
_:-ms-fullscreen, :root .IE-FlexAuto {
flex-basis: auto;
}
.inner-inner {
flex: 1 1 auto;
}
</style>和
<div class="container">
<div class="first">
<input type="text" \>
</div>
<div class="empty"></div>
<div class="last">
<div class="btn IE-FlexAuto">
<div class="btn-inner IE-FlexAuto">
first item item
</div>
</div>
<div class="btn IE-FlexAuto">
<div class="btn-inner IE-FlexAuto">
second item item
</div>
</div>
</div>
</div>结果如下:

https://stackoverflow.com/questions/56375899
复制相似问题