Dev Study
← 解説「箱の木 — block・inline・text の 3 種類と、箱にならないもの」に戻る

サンプルコードで身につける: 箱の木 — block・inline・text の 3 種類と、箱にならないもの

解説で学んだ概念を、3つの具体例で確認します。素朴な例から実務寄りの例へと進みます。

1箱の 3 種と display: none

をにする最小の build_layout_tree です。は display の値で か のに、文字は text の箱になり、 の要素は None を返すので子孫を見に行きません。実行すると h1 と p の 2 つだけが body の子として出て、3 つ目の p が子孫ごと消えたことが最後の行で分かります。

Rust

2空白の折りたたみと「箱にならない文字」

の中身を で 1 つの空白にまとめ、空白だけなら箱を作らない text_box です。タグの間の改行や字下げ("\n ")はここで消え、文字の前後の空白 1 つは残ります(隣の文字との間隔になる)。実行すると 6 個の Text ノードのうち箱になるのは 3 個と出ます。

Rust

3実務に写す: 権限で消えるメニューの木

設定画面のメニュー定義から「表示する項目だけの木」を作る build_view_tree です。hidden の項目は display: none と同じく子孫ごと落とし、子が全部落ちたグループも(空白だけの文字が箱にならないのと同じ理屈で)落とします。実行すると「管理」と「実験的な機能」が消え、ルート直下が 4 個から 2 個になります。

Rust

図やコードに出てくる用語(タップで説明)