首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE Flexbox不考虑子flexbox大小

IE Flexbox不考虑子flexbox大小
EN

Stack Overflow用户
提问于 2019-05-30 17:59:09
回答 1查看 43关注 0票数 0

我们有带有flex-basis: auto的父容器;在最后一个父容器的内部,我们有一些带有flex-basis: 0的flexbox计数;问题是最后一个父容器的行为就像他是空的。这种情况只发生在IE(11)中。

请分享一些技巧来修复它。

小提琴手:https://fiddle.sencha.com/#view/editor&fiddle/2slv

以下是文本示例:

代码语言:javascript
复制
-div:flex-basis=auto
-div:flex-basis=auto
-div:flex-basis=auto
    --div:flex-basis=0

IE11在计算顶层div的宽度时不考虑二级div内容宽度。

代码语言:javascript
复制
.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;
    }
代码语言:javascript
复制
<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>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-30 21:04:13

尝试设置.container类的最小宽度属性,并将IE浏览器的flex-basis属性从0更改为"auto“。

代码如下:

代码语言:javascript
复制
<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>

代码语言:javascript
复制
<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>

结果如下:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56375899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档