423 文字
2 分

Q. Noto Sansの場合、下にずれたように見える

2023-08-09

実際のサンプル#

line-height を 1em にして、各フォントがどのように領域を占有するかを比較している。

https://stackblitz.com/edit/stackblitz-starters-cwcsb5?file=src%2FApp.tsx

推測#

フォントに指定されている情報によって、意図してこうなっている可能性がある。

フォント周りの CSS プロパティは未だあまりサポートされておらず、ほぼコントロールすることが出来ないため、どうしようもないと思われる。

Line-height と Inline formatting context#

Line-height が normal である場合#

インライン整形コンテキストの大きさは、文字のベースラインよりも上の大きさ Ascent metric、文字のベースラインよりも下の大きさ Descent metric、行間の大きさ Line gap metric によって決定される。

line-height= ascent metric + descent metric + line gap metric

これらの値は、フォントによっては好ましい値が指定されている場合がある。

また Line gap metric は Leading として利用され、Descent metric と Ascent metric の上下に Leading / 2 の値が付与される。

text-box-edge(text-edge)プロパティなどがサポートされたら、Leading の挙動は変更できるが、現状草案の段階であり、ほとんどの環境で利用できないため、実質 Line gap metric は常に分割して付与されることになる。

CSS Inline Layout Module Level 3 (日本語訳)

line-height をそれ以外の値にした場合#

line-height が指定の値になるように、leading を削って調整される。

Descent metric と Ascent metric の和よりも小さな値が指定された場合は、特に書かれていないが、Chrome では両側から均等に削られているように見える。

Q. Noto Sansの場合、下にずれたように見える
https://blog.ohirunewani.com/posts/q-noto-sans-font-comparison/
作者
hrdtbs
公開日
2023-08-09
ライセンス
CC BY-NC-SA 4.0