flex-grow 在 Internet Explorer 11 中不起作用 [关闭]

Posted

技术标签:

【中文标题】flex-grow 在 Internet Explorer 11 中不起作用 [关闭]【英文标题】:flex-grow not working in internet explorer 11 [closed] 【发布时间】:2014-08-15 06:44:13 【问题描述】:

Hy

我在 IE 中使用 flex 时遇到了一些问题:

http://jsfiddle.net/EvvBH/

请注意#two 元素有flex: auto,它应该将其扩展以填充容器,即使没有足够的内容。

但它只在 Chrome 和 Firefox 中这样做。在 IE 中它根本不起作用。

IE 不支持flex-grow 吗?

【问题讨论】:

【参考方案1】:

我将使用-ms-flex: 1 1 auto; 因为 IE 还没有完全支持 flex。应该带前缀。

【讨论】:

【参考方案2】:

IE 需要flex: 1 1 auto

看不懂flex: 1

【讨论】:

【参考方案3】:

如果有人不是在身体上而是在一些子 div 上尝试这个。 您可以设置高度:0;在具有最小高度的元素上。

IE 只想要 flex-grow auto 元素的父元素上的任何高度。

所以它可能看起来像这样:

.flex-parent
  display: flex;
  min-height: 300px;
  height: 0;

.flex-child
  flex: 1 1 auto;

【讨论】:

这不是一个好主意,如果你的块长于当前窗口高度 父元素中的 height:0 为我解决了这个问题。谢谢!!! 不错的一个儿子,这个给我修好了,现在就去享受一下 这可以防止元素超过最小高度。 我设置了min-height: 100vh,但在 IE11 中什么也没发生。添加height: 100vh 有效。溢出仍然正常运行(即,如果内容不适合子项,它仍然会正常扩展超出视口)。【参考方案4】:

发生这种情况是因为您在<body> 上使用min-height 来获得完整高度。对于 Internet Explorer,您需要使用 height 属性(使用 100%100vh)。

【讨论】:

好收获!我想不通!谢谢。【参考方案5】:

不太确定您想要实现什么,但这不是 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>

【讨论】:

以上是关于flex-grow 在 Internet Explorer 11 中不起作用 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

关于flex的三属性flex-grow

flex-grow:取整数 ,在伸缩行伸缩程度

flex-grow 和 width 有啥区别?

如何使用 flex-grow 使图像填充 flex 项目?

display:flex 的弹性盒子中,flex-grow:2 不生效的解决方法

在 flexbox 中过渡 flex-grow 项目