Skip to main contentModule boxmodel
Source - box_clear 🔒
- 要素の clear 値。“left” / “right” / “both” に加え、
float と同様に
inline-start/inline-end の論理方向キーワードにも対応する。 - box_float 🔒
- 要素の float 値。“left” / “right”(物理方向は direction に関わらず不変)に加え、
CSS Logical Properties の
inline-start/inline-end(direction に応じて
left/right へ解決される)にも対応する。それ以外は “none” 扱い。 - box_inset_len 🔒
top/right/bottom/left(side はその名前そのもの)を解決する。個別の longhand が
明示されていればそれを優先し、無ければ inset ショートハンド(margin と同じ1〜4値展開)
から対応する辺を取り出してフォールバックする。- box_is_rtl 🔒
direction:rtl のとき論理方向キーワード(inline-start/inline-end)を物理方向
(left/right)へ解決する。direction は継承プロパティとして既に解決済みのため、
このボックス自身の specified_values を見るだけで祖先からの継承値も反映される。- box_len 🔒
- 長さプロパティを base(%解決の基準)で解決。auto/未指定は None。
- box_main_auto_margins 🔒
- flex アイテムの主軸方向の auto margin 個数を返す(row: left/right、column: top/bottom)。
margin-<side>:auto 明示、または margin ショートハンドの該当辺が auto のとき数える。 - box_position 🔒
- 要素の position 値(小文字化。未指定は “static”)。
- box_translate 🔒
transform から translate オフセット (dx, dy) を取り出す。% は要素自身の (w,h) 基準。
translate(x[,y]) / translateX(x) / translateY(y) に対応(scale/rotate は未対応・無視)。- extract_fn_args 🔒
name(...) の括弧内文字列を取り出す(string_slice lint 回避で str::get のみ使用)。- margin_is_h_auto 🔒
- margin の左右が auto か(
margin:auto / margin:0 auto / margin-left:auto)。 - occ_is 🔒
- グリッド占有 (rowspan/colspan 解決用) のヘルパ。
- occ_mark 🔒
- resolve_translate_len 🔒
- translate の 1 引数(px / % / rem / vh / vw)を base 基準で解決。
以前は
px/% の2種のみ対応で、それ以外の単位(rem/vh/vw等)は
t.strip_suffix("px").unwrap_or(t)が単位付き文字列をそのまま数値
パースへ渡してしまい、静かに0へフォールバックしていた——単に
「対応外」なのではなく、transform: translate(1rem, 10px)のような
式で意図した移動量が消えて要素が動かなくなる、実害のあるバグだった。
em(要素自身の算出フォントサイズ基準)はこの関数の引数だけでは
算出フォントサイズを解決できないため対象外のまま
(font-sizeの継承解決には別途プロパティ探索が必要で、誤った既定値
〔例:常に16px〕を当てはめるとremと区別が付かない別の壊れ方になる
リスクがあり見送り)。2026-07-17 発見・実装。