描画領域の大きさを参照する単位は、当初vw
とvh
単位しかなかった。その後、Mobile Safariを皮切りに動的な描画領域を持つブラウザーが増えたことから、暗黙的に描画領域の最大値を参照する値となっている。lvw
とlvh
単位は明示的に同じ値を参照するので、これらの方が第三者にわかりやすいコードになるはずだ。実装は2022年頃に揃っている。
描画領域関連の単位は、幅と高さの小さい方の最大値を参照するlvmin
単位から、ブラウザーが動的に制御する高さと同期するdvh
単位まで、様々な単位が定義されている。viewportを示す「v」に、「l」と「s」と「d」という接頭辞、「w (i)」と「h (b)」と「min」と「max」という接尾辞、これらの組み合わせによってどういう単位か明確になるというわけだ。接頭辞が無い場合は暗黙的にlとみなされるという定義になっているが、互換性のために残されていると言って良さそうな雰囲気が仕様の文から伝わってくる。
ゆくゆくは書字方向に依存しない*vi
や*vb
単位へと置き換えてゆくべきかもしれない。しかし、メンタル・モデルの更新なので、同時に行うと混乱しやすい。まずはlv*
に置き換え、それに慣れたら次の更新を考えれば良いだろう。