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;
}

関連記事

2020.06.27

HTML・CSS

iOSのブラウザでセレクトボックスの文字を省略せずに表示

iOSのブラウザではセレクトボックスに長いテキストの選択肢がある場合、途中で省略して表示されます。省略記号「…」が付いて選択肢が最後まで読めません。これを全て表…

2020.10.16

HTML・CSS

flexboxでCSSのwidthプロパティにcalcを利用

769px以上:4カラム・768px以下:3カラム flexboxでCSSのwidthプロパティにcalcを利用します。以下のhtml構造でテストします。デモペ…

2020.08.30

HTML・CSS

Font Awesomeの使い方

Font Awesomeの公式サイトで使用したいアイコンフォントを選びます。Iconsのページでアイコンフォントの一覧が確認できます。有料版と無料版があり有料版…

2025.07.01

HTML・CSS

mask-imageを利用したグラデーションの点線

CSSのmask-imageプロパティを利用して、グラデーションの点線を作成します。デモページはこちら グラデーションの点線は疑似要素にmask-imageプロ…

2020.10.12

HTML・CSS

CSSプロパティをショートハンドで記述

CSSプロパティをショートハンドで記述します。プロパティによって記述順や省略可・不可のルールがあります。 ■ fontプロパティfont-style・font-…

上に戻る