みやのまるがゆく。

物忘れが激しい私のためのメモ

flex-directionをcolumnにしていて、子要素が空の時に高さが効かない件。

結論

display: flex;
flex-direction: column;
flex-wrap: nowrap; ←こいつをつければOK

 

ざっくり何があったか

子要素が空なら高さ要らんやん。縦並びにするならflexも要らんやん。

まぁそれはごもっとも。

今カスタマイズしていたのは、はてなブログアーカイブページの話。(このブログではない)

アーカイブページで表示される各記事のアイキャッチ、実はimgタグとかではなくdivの背景画像として出力されています。
なんで空のDOMなんですね。

そして画像のDOMは3番目に出力されるので、
アイキャッチ
・記事タイトル
・投稿日
という順番で表示させたい場合は、absoluteを使うとかflexのorderを使うとかして、アイキャッチのDOMを一番上に持ってくる必要があります。

画像のDOMをorder : 0、他のDOMをorder : 1として設定することで、今回は一番最初に表示される様調整しました。

ところがどっこい、画像のDOMの高さがどう頑張っても確保されない。

・空のDOM
・縦並びのflex
・高さをパーセンテージやaspect-ratioで指定したい

こんな条件が合わさった結果、そんなことになっている様で。

こねくり回した結果、flex-wrap: nowrap;があれば高さ指定が可能になりました。

 

以上、対処法としてメモ!