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 の既定は normal1em 相当。ここでは呼び出し側が 解決したピクセル値を受け取る。
  • 列は等幅で、gap は列と列の間だけに入る(外側には入らない)。 よって 列幅 = (使用可能幅 - gap * (列数 - 1)) / 列数

§割り切り

段抜き(column-span)・段区切り(break-inside)・段罫線 (column-rule)は扱わない。本モジュールは「何列で、各列はどの x 座標にどの幅で並ぶか」だけを決める。

Structs§

Column
列の位置と幅。
MultiColSpec
多段組の指定。いずれも解決済みのピクセル値/個数。
Placement
子ボックスを列へ振り分けた結果。

Functions§

assign_to_columns
子の高さ列を受け取り、各子をどの列のどの高さへ置くかを決める(純粋関数)。
column_heights
振り分け後の各列の高さを返す(純粋関数)。
layout_columns
列の x 座標と幅を計算する(純粋関数)。
parse_columns_shorthand
columns ショートハンドを column-widthcolumn-count へ分解する。
resolve_column_count
実際に使う列数を決める(純粋関数)。