2017-10-26 6 views
0

私は親のすべての高さを埋めるために黄色の子供を伸ばす必要があります。親の高さを設定しないでください。親の身長は、青い子供のテキストに依存する必要があります。 https://jsfiddle.net/7vaequ1c/1/コンテナの高さを満たすためにフレックスチャイルドを伸ばす方法は?

<div style='display: flex'> 
 
    <div style='background-color: yellow;height: 100%; width: 20px'> 
 
    </div> 
 
    <div style='background-color: blue'> 
 
    some<br> 
 
    cool<br> 
 
    text 
 
    </div> 
 
</div>

+0

答えは簡単です

スニペット、と私は真の明確な説明 – LGSon

+1

と1を掲載しました!受け入れられた答えは、 'height:100%'を省略することが重要な点であることを明確に指摘しなければなりません。これは私の答えでは当てはまりませんでした。 LGSonの回答には、受け入れ済みとマークする必要があります。 –

答えて

4

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

.flexbox { 
 
    display: flex; 
 
    flex-direction: row; 
 
    justify-content: center; 
 
    align-items: stretch; // <-- stretch vertical 
 
    align-content: center; 
 
} 
 

 
.box { 
 
    padding: 1em; 
 
    text-align: center; 
 
    margin: 1em; 
 
} 
 

 
.box--yellow { 
 
    background-color: yellow; 
 
} 
 

 
.box--blue { 
 
    background-color: blue; 
 
    color: white; 
 
}
<div class="flexbox"> 
 
    <div class="box box--yellow"> 
 
    yellow 
 
    </div> 
 
    <div class="box box--blue"> 
 
    some<br> 
 
    cool<br> 
 
    text 
 
    </div> 
 
</div>
フレキシボックスを使用して、主要な間違いは、すべての上 height: 100%を使用して起動することです。

多くの場合、Flexboxには慣れていますが、多くの場合、Flexboxには壊れやすいことがあります。

解決方法は簡単です。height: 100%を削除すると、自動的に機能します。

それがない理由は、方向(デフォルト)、align-items制御上下挙動にフレックス項目ためのものであり、そのデフォルトとして、これは単にあるとして働くstretchあります。

スタックは

<div style='display: flex'> 
 
    <div style='background-color: yellow; width: 20px'> 
 
    </div> 
 
    <div style='background-color: blue'> 
 
    some<br> 
 
    cool<br> 
 
    text 
 
    </div> 
 
</div>

0

<div style='display: flex'> 
 
    <div style='background-color: yellow; flex: flex-grow; width: 20px'> 
 

 
    </div> 
 
    <div style='background-color: blue'> 
 
    some<br> 
 
    cool<br> 
 
    text 
 
    </div> 
 
</div>

黄色の子属性にflex: flex-grow;を追加します。

+0

この答えに無効な構文があるので、Flexboxとそのプロパティを読み上げる必要があります。 – LGSon

0

ここに行く:私が正しく理解している場合

<div style='display: flex;'> 
 
    <div style='background-color: yellow; flex: none auto; width: 20px'></div> 
 
    <div style='background-color: blue'> 
 
    some<br> 
 
    cool<br> 
 
    text 
 
    </div> 
 
</div>

+0

説明は間違っていますが、構文エラーもあります。私はあなたがそれを使用して質問に答える前にFlexboxで読むことをお勧めします。 – LGSon

1

を、あなたは縦に、この場合には、クロス軸に沿ってレイアウトを定義align-itemsプロパティ、探しています。

あなたはここで良いの概要を見つけることができます。

+0

'align-items:stretch;'はデフォルトであり、そのプロパティを追加します:valueは違いをもたらさないでしょう。 – LGSon

関連する問題