2016-06-21 9 views
3

青色のボックスは100%の高さにする必要があります。これは、ピクセルの高さをdiv.aに設定したときに機能しますが、残念ながらこれは実際の場合のオプションではありません。 http://codepen.io/anon/pen/jrVEpB高さ:100%がflexbox内で動作しない

.a{ 
 
    background-color:red; 
 
    display:flex; 
 
} 
 
.b1{ 
 
    flex-grow:0; 
 
    background-color:green; 
 
} 
 
.b2{ 
 
    flex-grow:1; 
 
    background-color:yellow; 
 
    height:100%; 
 
} 
 

 
.c{ 
 
    height:100%; 
 
    background-color:blue; 
 
}
<div class="a"> 
 
    <div class="b1"> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    
 
    </div> 
 
    <div class="b2"> 
 
     <div class="c"> 
 
      miksi et ole full height saatana 
 
     </div> 
 
    </div> 
 
</div>

+0

高さ:100%で、それは親の高さです。しかし、それは100%の高さや高さはありません親の画面全体ではありません。 – MrBuggy

+1

'.b2'の' height:100% 'を削除します – blonfu

答えて

5

あなたがこのレイアウトを達成するための割合の高さを必要としません:

これはおそらく、すべてを説明しています。それだけではFlexプロパティを使用して構築することができます。

:割合の高さを使用することが必須である場合

.a { 
 
    display: flex; 
 
    background-color: red; 
 
} 
 
.b1 { 
 
    background-color: green; 
 
} 
 
.b2 { 
 
    flex: 1; 
 
    display: flex; 
 
    background-color: yellow; 
 
} 
 
.c { 
 
    flex: 1; 
 
    background-color: blue; 
 
} 
 

 
body { margin: 0; }
<div class="a"> 
 
    <div class="b1"> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    <p>hurr durr</p> 
 
    </div> 
 
    <div class="b2"> 
 
    <div class="c"> 
 
     miksi et ole full height saatana 
 
    </div> 
 
    </div> 
 
</div>

、その後、適切な実装を検討

+0

私はこの動作が奇妙だと思う(しかし、そう)。どのようにして "flex-grow"要素の100%が計算されたサイズの100%にならないのでしょうか? – einord

+1

@einord、完全な説明は私の答えの最後のリンク参照にあります。 –

1

div.cの高さと100%の高さは親の高さを取るため、div.aの高さは100%にする必要があります。しかし、高さがないときは、100%で動作しませんでした... https://jsfiddle.net/h2yvoeL0/1/enter code here

乾杯。

関連する問題