Flex-box 仕様3 では、flex-items はブロック コンテナーではないと規定されています。
フレックス アイテムは、そのコンテンツの新しい書式設定コンテキストを確立します。この整形コンテキストのタイプは、通常どおり、その「表示」値によって決定されます。フレックスアイテムの計算された「表示」は、CSS 2.1 9.7 章の表を適用することによって決定されます。ただし、フレックス アイテムは、ブロック レベルのボックスではなく、フレックス レベルのボックスです。ブロック フォーマットのコンテキストではなく、コンテナーのフレックス フォーマットのコンテキストに参加します。
この小さな例を見てください (フィドル: 4 ):
#flex {
height: 200px;
width: 100px;
display: flex;
flex-flow: column;
background-color: red;
}
#flexAuto {
display: block;
position: relative;
flex: auto;
width: 100%;
}
#oneHundredPercent {
height: 100%;
width: 100%;
background-color: green;
}
HTML
<div id="flex">
<div id="flexAuto">
<div id="oneHundredPercent"></div>
</div>
</div>
#oneHundredPercent の高さは、そのコンテナ #flexAuto のサイズと同様に 200 ピクセルになると思います。ただし、高さは 0px です。実際の出力は左の図のようになります。私は正しい写真を期待します:
フレックスアイテムを再びボックスのように動作させる簡単な方法はありますか?