2023.02.22

HTML・CSS

縦積みinline-flexの折り返しとwriting-modeによる代用

inline-flexで縦積みにした場合の折り返しと、writing-modeで縦積みにした場合の折り返しを確認します。
デモページはこちら

htmlは以下の単純なリスト構造で確認します。

<ul>
  <li>01</li>
  <li>02</li>
  <li>03</li>
  <li>04</li>
  <li>05</li>
  <li>06</li>
  <li>07</li>
  <li>08</li>
</ul>

CSSは全パターン共通でulにdisplay: inline-flexを指定します。

まず、ulにflex-direction: column、flex-wrap: wrapを指定します。writing-modeは指定していません。liが縦積みになり左から右に折り返します。

ul {
  display: inline-flex;
  flex-wrap: wrap;
  flex-direction: column;
}

次に、ulのflex-wrap: wrapをflex-wrap: wrap-reverseに変更します。liの折り返しが右から左に変更されますが、フレックスアイテムがフレックスコンテナからはみ出すバグが発生します。

ul {
  display: inline-flex;
  flex-wrap: wrap-reverse;
  flex-direction: column;
}

ここでwriting-modeを試します。ulからflex-direction: columnを外しflex-wrap: wrapを指定します。そして新たに、writing-mode: vertical-lrを指定します。

writing-modeは内容物の方向を決定します。ulの内容物であるliが縦積み(vertical)になり、左から右(lr)に折り返します。lrはleft to rightの略です。

ただしこのままだと、ulの内容物であるテキストも縦積みになってしまいます。そこでliにwriting-mode: horizontal-tbを指定し、liの内容物であるテキストだけを水平方向に流します。writing-modeの初期値はhorizontal-tbです。

これで、ulのflex-direction: columnをwriting-mode: vertical-lrで代用することができました。

.list03 {
  display: inline-flex;
  flex-wrap: wrap;
  writing-mode: vertical-lr;
}
ul li {
  writing-mode: horizontal-tb;
}

最後にulのwriting-mode: vertical-lrをwriting-mode: vertical-rlに変更します。liが右から左(rl)に折り返し、flex-direction: columnで起きたようなバグは発生しません。rlはright to leftの略です。

ul {
  display: inline-flex;
  flex-wrap: wrap;
  writing-mode: vertical-rl;
}
ul li {
  writing-mode: horizontal-tb;
}

関連記事

2024.02.19

HTML・CSS

Photoshopのグラデーションオーバーレイをlinear-gradientで適用

Photoshopのグラデーションオーバーレイを、background-imageプロパティのlinear-gradientで適用します。グラデーションの角度は…

2025.08.12

HTML・CSS

background-clipを利用したグラデーションのテキスト

background-clip: textを利用してグラデーションのテキストを表示します。デモページはこちら 以下のhtml構造で確認します。グラデーションのテ…

2021.07.06

HTML・CSS

background-imageプロパティを利用した高さ可変の三角形

borderプロパティで三角形を作成した場合、高さを可変にすることができません。そこで、background-imageプロパティのlinear-gradien…

2025.08.14

HTML・CSS

1行のテキストの均等割りについて

デザイン上テキストが1行に限定されている場合のテキストの均等割りを確認します。デモページはこちら 以下のhtml構造で確認します。 CSSは以下になります。te…

2020.10.15

HTML・CSS

CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定

デモページはこちら CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定します。以下のhtml構造でテストします。デモペ…

上に戻る