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§
- Child
Placement - 子要素の最終配置結果。
- Column
- 列の位置と幅。
- Column
Rule Rect - 実際に描画される 1 本の段罫線の矩形情報。
- Column
Rule Style - 段罫線の解決済みスタイル指定。
- Multi
ColSpec - 多段組の指定。いずれも解決済みのピクセル値/個数。
- Placement
- 子ボックスを列へ振り分けた結果。
Enums§
- Child
Kind - 子要素の特性(通常フローで列内に入るか、全幅スパンするか)。
- Column
Fill column-fillプロパティ値(W3C CSS Multi-column Layout Level 1 §7)。- Rule
Style - 段罫線のスタイル種別。
Functions§
- assign_
children_ with_ spans - 子要素群を段抜き(
column-span: all)を考慮してセグメント化し配置する(純粋関数)。 W3C CSS Multi-column Layout Level 1 §6 準拠。 - assign_
children_ with_ spans_ ex - 子要素群を段抜き(
column-span: all)および充填モード(column-fill)を考慮してセグメント化し配置する(純粋関数)。 W3C CSS Multi-column Layout Level 1 §6 / §7 準拠。 - assign_
to_ columns - 子の高さ列を受け取り、各子をどの列のどの高さへ置くかを決める(純粋関数)。
- assign_
to_ columns_ balanced - 各アイテムの高さ列、列数、充填モード(
column-fill)、コンテナ指定高さ(max_h)を受け取り、 ドキュメント順序を維持したまま各列へ配置する(純粋関数)。 - column_
heights - 振り分け後の各列の高さを返す(純粋関数)。
- column_
heights_ balanced - 振り分け後の各列の高さを返す(純粋関数)。
- compute_
column_ rules - 列一覧とギャップ、高さ、ルール定義から、各列間に引く段罫線の矩形一覧を計算する(純粋関数)。
- layout_
columns - 列の x 座標と幅を計算する(純粋関数)。
- parse_
column_ fill column-fill文字列をパースする(純粋関数)。- parse_
column_ rule column-rule(ショートハンド)および個別ロングハンドをパースする(純粋関数)。- parse_
columns_ shorthand columnsショートハンドをcolumn-widthとcolumn-countへ分解する。- parse_
rule_ 🔒width column-ruleの太さを解析する(純粋関数)。- resolve_
column_ count - 実際に使う列数を決める(純粋関数)。
- resolve_
column_ gap column-gap(またはgap)の文字列値を解析してピクセル値へ解決する(純粋関数)。 既定値normalは1em相当(font_px)。未指定または不正値はfont_px(または 16px)。