2016-07-30 8 views
3

フレックスボックスレイアウトで配置されている親を埋めるためにdivを作成しようとしています。 次のjsfiddleでわかるように、divの高さは親の高さを埋めるものではありません。高さ100%のdivは、フレックスで配置された親を埋めることはありません

なぜ機能しないのですか? (@mrmcgregからの更新:それはChromeで動作しますが、FF上で動作しません)

https://jsfiddle.net/z73pjtox/1/

HTML:

<header id="header"> 
    header 
</header> 

<div id="content"> 
     <div> 
     height: 100% 
     </div> 
</div> 

CSS:

html, body { 
    height: 100%; 
} 
body { 
    margin: 0; 
    display: flex; 
    flex-flow: column; 
} 
#header { 
    flex: 0 1 auto; 
    background-color: green; 
} 
#content { 
    flex: 1 1 auto; 
    background-color: blue; 
} 
#content div { 
    height: 100%; 
    background-color: red; 
} 
+1

それはあなたがFFで欲しいものを行います。ただの観察。 – mrmcgreg

+0

@mrmcgreg情報をいただきありがとうございます。私はChrome専用ユーザー(イントラネット)向けに開発中ですので、FFで私の心のテストには入っていませんでした。 Chrome上では同じことをしないことが残念です – Matthew

+2

'#content '要素に' display:flex'と宣言するとchromeで動作しますが、 'height:100%'ルールは'#content div'要素を入れ子にしてから、この要素に' flex:1'を追加して、利用可能なスペースをいっぱいにします。 ** Fiddle:** https://jsfiddle.net/hLrsrd33/ – UncaughtTypeError

答えて

0

私はあなたのフィドルをチェックします。 MacのFirefox 47でここで働いているようだ。どのブラウザを使用していますか?

私はフィドルをフォークし、いくつかの設定を変更して、期待されていたことを確認しましたが、まったく同じように機能しました。しかし、古いバージョンのSafariではここでは動作しません。多分、ベンダーの接頭辞を追加して、それが役立つかどうか試してみてください。

すべてのプレフィックスについてはlink on CSS Tricksを確認してください。

fiddle

html, body { 
    height: 100%; 
} 
body { 
    margin: 0; 
    display: flex; 
    flex-direction: column; 
} 
#header { 
    height:30px; 
    background-color: green; 
} 
#content { 
    display:flex; 
    flex-direction:column; 
    flex:1; 
    background-color: blue; 
} 
#content div { 
    flex:1; 
    height: 100%; 
    background-color: red; 
} 
+0

FFで動作していましたが、Chromeでは動作しませんでした。 Chromeと私のjsfiddleを確認してください。どのように働いているのですか?それを理解しようとしている – Matthew

+0

ねえ男。コードとフィドルリンクを更新しました。 MacではChromeとFirefoxで動作します。私はちょうどコンテンツをフレックスボックスにし、両方をフレックスフローの代わりにフレックス方向に変更しました。私はフレックスをたくさん使っていないのでうまくいけばこれは正しい:) – liquidRock

関連する問題