2016-10-22 3 views
5

私は3つのブロックレベルの兄弟からなるウェブサイトを持っています:ヘッダ、div site-content、そしてフッタ。 site-content div要素がflex-grow: 1あるフレックスボックスの謎を解く

display: flex; 
flex-direction: column; 
height: 100%; 

センター:

は、私は私のbodyタグがほどフレキシボックスに設定する必要があります。

これはうまくいきました。このレイアウトは私には分かります(点線の枠は画面のどの部分に表示されているかをシミュレートすることです)。

enter image description here

私はいくつかのページでこのsite-contentのdivに、垂直/水平方向の中央ボックスを追加したいので、私の問題が発生します。だから、私はこのボックスのdivを作成し、これにsite contentを設定します。

.site-content { 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    } 

そしてsite-contentは、直ちにこれに崩壊DIV:

enter image description here

フッターに滞在するのではなく、乗り上げますボトム。何が一体?

何がもっと不快になるのは、simple codepen reconstructionが問題なく動作していることです。この問題の原因を特定することができません。

+0

それはFirefoxやエッジではなく、Chromeであなたが望むように動作します。 –

+0

これは重複しているかもしれません:http://stackoverflow.com/q/40093739/3597276 –

+0

たとえば、簡単なjsfiddleを追加できますか? – Swordys

答えて

0

あなたはまた、そうのようなhtmlが含まれる可能性がbody要素にdisplay: flexを与えている場合: https://jsfiddle.net/nrwa33ry/2/

body,html { 
    margin:0; 
    padding: 0; 
    display: flex; 
    flex-direction: column; 
    height: 100%; 
} 
+0

まあ、実際にはありません。表示:フレックスは子供にのみ影響します。 'html'には1つの子' body'しかありません。したがって、 'height:100%'を 'html'タグに適用する必要がありますが、残りは必要ありません。 https://jsfiddle.net/1nnqqmeo/ – Steve

+0

を編集しました。私の答えを編集したので、あなたのフィドルをより良く提供できます。 – Swordys