Skip to main content

Module multicol

Module multicol 

Source
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§

ChildPlacement
子要素の最終配置結果。
Column
列の位置と幅。
ColumnRuleRect
実際に描画される 1 本の段罫線の矩形情報。
ColumnRuleStyle
段罫線の解決済みスタイル指定。
MultiColSpec
多段組の指定。いずれも解決済みのピクセル値/個数。
Placement
子ボックスを列へ振り分けた結果。

Enums§

ChildKind
子要素の特性(通常フローで列内に入るか、全幅スパンするか)。
ColumnFill
column-fill プロパティ値(W3C CSS Multi-column Layout Level 1 §7)。
RuleStyle
段罫線のスタイル種別。

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)。