どうも、くまだです。
text-box-trimプロパティを使ってテキスト上下にある余白をトリミング・調整するあれこれ。
text-box-trimプロパティ
text-box-trimプロパティはテキスト上下の余白を調整するプロパティです。
テキスト上下の余白とは例えば、以下のような上下余白です。
<p class="text">あああああ</p>
.text {
background-color: orange;
line-height: 2;
font-size: 100px;
}

余白を視覚的に分かりやすくするために背景色をつけています。テキスト上下には余白が発生しているのがわかります。line-heightプロパティを指定すると、行全体の高さが大きくなることがあり、そのときに発生する余白が「ハーフ・レンディング」と呼ばれています。
おおざっぱにいうと、font-sizeの数値xline-heightの数値=行の高さになるので、テキストは上の場合は100pxでも行全体の高さは200pxになります。テキストと行全体の高さの差分が余白として表示されます。
text-box-trimプロパティを使うとその余白を調整できます。
<div class="box">
<p class="text">あああああ</p>
<p class="text trim">あああああ</p>
</div>
.box {
display: flex;
align-items: center;
gap: 10px;
padding: 40px;
}
.text {
background-color: orange;
line-height: 2;
font-size: 100px;
}
.trim {
text-box-trim: trim-both;
}

text-box-trimプロパティは以下の値を取ることができます。
- none:初期値。余白を調整しない。
- trim-both:上下の余白を調整する
- trim-start:上の余白を調整する。
- trim-end:下の余白を調整する。
また、text-box-edgeプロパティを使って余白調整開始位置を指定できます。以下のように指定できます。
.trim {
text-box-trim: trim-both;
text-box-edge: text;
}
text-box-edgeプロパティは、以下のような値を取ることができます。
- text:初期値。上部はtext-over-baseline、下部はtext-under baselineで調整。
- cap:上部を英大文字のの上限で調整。
- alphabetic:下部を小文字xの下限で調整。
text-box-edgeの値は、text-boxプロパティに一括で記述できます。
.trim {
text-box: trim-both cap alphabetic;
}

2025年6月現在はFirefoxブラウザ以外では対応済です。
ここまで読んでくださりありがとうございました。