【发布时间】:2014-08-15 06:44:13
【问题描述】:
Hy
我在 IE 中使用 flex 时遇到了一些问题:
请注意#two 元素有flex: auto,它应该将其扩展以填充容器,即使没有足够的内容。
但它只在 Chrome 和 Firefox 中这样做。在 IE 中它根本不起作用。
IE 不支持flex-grow 吗?
【问题讨论】:
标签: css internet-explorer flexbox
Hy
我在 IE 中使用 flex 时遇到了一些问题:
请注意#two 元素有flex: auto,它应该将其扩展以填充容器,即使没有足够的内容。
但它只在 Chrome 和 Firefox 中这样做。在 IE 中它根本不起作用。
IE 不支持flex-grow 吗?
【问题讨论】:
标签: css internet-explorer flexbox
我将使用-ms-flex: 1 1 auto;
因为 IE 还没有完全支持 flex。应该带前缀。
【讨论】:
IE 需要flex: 1 1 auto
看不懂flex: 1
【讨论】:
如果有人不是在身体上而是在一些子 div 上尝试这个。 您可以设置高度:0;在具有最小高度的元素上。
IE 只想要 flex-grow auto 元素的父元素上的任何高度。
所以它可能看起来像这样:
.flex-parent{
display: flex;
min-height: 300px;
height: 0;
}
.flex-child{
flex: 1 1 auto;
}
【讨论】:
min-height: 100vh,但在 IE11 中什么也没发生。添加height: 100vh 有效。溢出仍然正常运行(即,如果内容不适合子项,它仍然会正常扩展超出视口)。
发生这种情况是因为您在<body> 上使用min-height 来获得完整高度。对于 Internet Explorer,您需要使用 height 属性(使用 100% 或 100vh)。
【讨论】:
不太确定您想要实现什么,但这不是 Flexbox 布局的工作方式。要在元素上使用 'flex' 属性,它需要位于具有 'display:flex' 属性的父元素内。
<style>
#flexContainer {
display: flex;
}
#item1 {
width: 50px;
background: #66CC33;
flex: 1;
}
#item2 {
width: 50px;
background: #0099FF;
flex: 5;
}
#item3 {
width: 50px;
background: #66CC33;
flex: 10;
}
</style>
<html>
<div id="flexContainer">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
</div>
</html>
【讨论】: