Wie man flexbox-Ausrichtung-Elemente flex-end-Arbeit in WebKit/Blink?

Ich versuche, ein nest flexbox in einem anderen flexbox. Die box ist vertikal:

+------+
|      |
+------+
|      |
|      |
|      |
+------+

Wo der Obere Bereich passt der Inhalt flex 0 1 auto und die untere Hälfte füllt den restlichen Raum flex 1 1 auto.

In der unteren Hälfte habe ich ein anderes flex-Feld, gehen, horizontal. Ich will die 2 inneren Boxen Raum-zwischen über-und flex-end für align-items-also im Grunde die 2 Innenteile sind fixiert auf der linken und rechten unteren Ecken wie diese:

+------+
|      |
+-+  +-|
|L|  |R|
+------+

Einstellung scheint zu funktionieren, im Firefox, aber bei Chrome(Blink) und Safari bekomme ich diese:

+------+
|      |
|      |
|      |
+-+--+-|
|L|  |R|
+-+  +-+

Hier ist der HTML -

<div id="outer">
    <div id="top">
        top
    </div>
    <div id="bottom">
        <div id="bottomcontents">
            <div id="botleft">
                bottom left
            </div>
            <div id="botright">
                bottom right
            </div>
        </div>
    </div>
</div>

Und es gibt die CSS -

* {
    box-sizing: border-box;
    -moz-box-sizing: border-box;   
}

html, body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
    border: 0px;
}

#outer {
    height: 100%;
    border: 1px solid red;
    display: flex;
    display: -webkit-flex;
    flex-flow: column;
    -webkit-flex-flow: column;
    justify-content: center;
    align-content: center;
    align-items: center;
    -webkit-justify-content: center;
    -webkit-align-content: center;
    -webkit-align-items: center;
    min-height: auto;    
}
#top {
    width: 100%;
    flex: 0 1 auto;
    -webkit-flex: 0 1 auto;
    border: 1px solid blue;
}
#bottom {
    width: 100%;
    height: 100%;
    flex: 1 1 auto;
    -webkit-flex: 1 1 auto;
    border: 1px solid green;
}
#bottomcontents {
    height: 100%;
    width: 100%;
    border: 1px solid pink;
    display: flex;
    display: -webkit-flex;
    flex-flow: row;
    -webkit-flex-flow: row;
    justify-content: space-between;
    align-content: center;
    align-items: flex-end;
    -webkit-justify-content: space-between;
    -webkit-align-content: center;
    -webkit-align-items: flex-end;
    min-height: auto;        
}

#botleft, #botright {
    flex: 0 1 auto;
    -webkit-flex: 0 1 auto;
}
#botleft {
    border: 1px solid purple;
}
#botright {
    border: 1px solid cyan;
}

Und hier ist ein Turnschuh

Funktioniert es wie erwartet in Firefox. Habe ich etwas falsch gemacht? Ist das ein bug in Chrome und Safari? Gibt es eine Abhilfe?

InformationsquelleAutor gman | 2014-04-11

Schreibe einen Kommentar