嵌套的CSS3 flexboxes不工作

前端之家收集整理的这篇文章主要介绍了嵌套的CSS3 flexboxes不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
柔性盒可以嵌套吗?我在水平的flexBox中嵌套了一个水平的flexBox,在垂直的flexBox中嵌套了一个垂直的flexBox.只有水平的水平工程在铬并且不工作在Firefox!

我在这里创建了一个jsfiddle:http://jsfiddle.net/NpkTL/1/

但这里是html:

<div id="A">
    <div id="A1">A1</div>
    <div id="A2">
        <div id="A2-container">
            <div id="A2a">A2a</div>
            <div id="A2b">A2b</div>
        </div>
    </div>
</div>
<div id="B">
    <div id="B1">B1</div>
    <div id="B2">
        <div id="B2-container">
            <div id="B2a">B2a</div>
            <div id="B2b">B2b</div>
        </div>
    </div>
</div>

和CSS:

* {
    margin: 0;
    padding: 0;
    font-family: Arial;        
}

#A {
    position: absolute;
    top: 0px;
    left: 0px;
    background: black;
    width: 50%;
    height: 100%;

    display: -moz-Box;
    display: -webkit-Box;    
    display: Box;
    -moz-Box-orient: horizontal;
    -webkit-Box-orient: horizontal;
    Box-orient: horizontal;
}

#A1 {
background: brown;
width: 100px;
height: 80%;   
}

#A2 {
background: orange;
height: 80%;
-moz-Box-flex: 1;
-webkit-Box-flex: 1;
Box-flex: 1;    
}

#A2-container {
    display: -moz-Box;
    display: -webkit-Box;    
    display: Box;
    -moz-Box-orient: horizontal;
    -webkit-Box-orient: horizontal;
    Box-orient: horizontal;
    width: 100%;
    height: 100%;    
}

#A2a {
    background: red;
    height: 80%;   
    -moz-Box-flex: 1;
    -webkit-Box-flex: 1;
    Box-flex: 1;    
}

#A2b {
    background: blue;
    width: 100px;
    height: 80%;
}

#B {
    position: absolute;
    top: 0px;
    right: 0px;
    background: gray;
    width: 50%;
    height: 100%;

    display: -moz-Box;
    display: -webkit-Box;    
    display: Box;
    -moz-Box-orient: vertical;
    -webkit-Box-orient: vertical;
    Box-orient: vertical;

}

#B1 {
    background: brown;
    width: 80%;
    height: 100px;   
}

#B2 {
    background: orange;
    width: 80%;
    -moz-Box-flex: 1;
    -webkit-Box-flex: 1;
    Box-flex: 1;    
}

#B2-container {
    display: -moz-Box;
    display: -webkit-Box;    
    display: Box;
    -moz-Box-orient: vertical;
    -webkit-Box-orient: vertical;
    Box-orient: vertical;
    width: 100%;
    height: 100%;    
}

#B2a {
    background: red;
    width: 80%;   
    -moz-Box-flex: 1;
    -webkit-Box-flex: 1;
    Box-flex: 1;    
}

#B2b {
    background: blue;
    width: 80%;
    height: 100px;
}

#A在左边,#B在右边. #A和#A2-容器是垂直的flexBoxes和#B和#B2容器是水平的flexBoxes.我为不同的div设置颜色,并在每个级别(垂直和垂直的高度)上缩小它们,以便更容易地看到发生了什么.它看起来很好,在左边(在chrome!),但在右边,#B2a应该垂直填充#B2(橙色的).

我意识到在这个例子中,在3中的中间行/列中使用一个flexBox将更容易使用flex,但是我正在动态地将内容加载到等同于#A2的内容中,而这也恰好是一个flexBox.

解决方法

Firefox的flex Box模型现在很漂亮.如果你有任何固定或绝对定位的盒子,它会破碎;也没有宽度会将您的flexBoxes还原到内联框.

猜你在找的CSS相关文章