Expand description
CSS 多段組(column-count / column-width / columns / column-gap)の
列幾何計算(純粋モジュール)。
ハードウェアにもグローバル状態にも依存しない算術だけなので、 QEMU 抜きでホスト側から検証できる。
§仕様の要点(CSS Multi-column Layout Level 1)
column-countは列数の指定、column-widthは 1 列の最小目安幅。 両方指定されたときは「column-widthから求まる列数」とcolumn-countの小さい方を採る(column-countは上限として働く)。column-gapの既定はnormal=1em相当。ここでは呼び出し側が 解決したピクセル値を受け取る。- 列は等幅で、
gapは列と列の間だけに入る(外側には入らない)。 よって列幅 = (使用可能幅 - gap * (列数 - 1)) / 列数。
§割り切り
段抜き(column-span)・段区切り(break-inside)・段罫線
(column-rule)は扱わない。本モジュールは「何列で、各列はどの
x 座標にどの幅で並ぶか」だけを決める。
Structs§
- Column
- 列の位置と幅。
- Multi
ColSpec - 多段組の指定。いずれも解決済みのピクセル値/個数。
- Placement
- 子ボックスを列へ振り分けた結果。
Functions§
- assign_
to_ columns - 子の高さ列を受け取り、各子をどの列のどの高さへ置くかを決める(純粋関数)。
- column_
heights - 振り分け後の各列の高さを返す(純粋関数)。
- layout_
columns - 列の x 座標と幅を計算する(純粋関数)。
- parse_
columns_ shorthand columnsショートハンドをcolumn-widthとcolumn-countへ分解する。- resolve_
column_ count - 実際に使う列数を決める(純粋関数)。