text-wrap
見出しなどの各行の長さをそろえたり、本文の最後の行に1語だけ残らないようにしたりするプロパティ。 見出しに手で入れていた改行を、CSSの指定に置き換えられます。
今の書き方
行の長さはブラウザがそろえるので、<br>は要りません。
日本語は1文字ごとに折り返せるため、言葉の途中で切りたくない部分は、以前と同じ<span>で囲みます。
balanceは、その切れ目の中で行の長さをそろえます。
h2 {
text-wrap: balance;
}
.nowrap {
white-space: nowrap;
}
<h2>
<span class="nowrap">新しい機能で、</span><span class="nowrap">以前の書き方を</span><span class="nowrap">置き換える</span>
</h2>
以前の書き方
最後の行が短くならないよう、見出しに<br>を入れ、狭い画面では消していました。
言葉の途中で切れないよう、文節をwhite-space: nowrapの<span>で囲むこともありました。
文言や画面幅が変わるたびに、改行の位置を決め直す必要があります。
.nowrap {
white-space: nowrap;
}
@media (max-width: 767px) {
.hidden-md {
display: none;
}
}
<h2>
<span class="nowrap">新しい機能で、</span><br class="hidden-md" /><span class="nowrap">以前の書き方を</span><span class="nowrap">置き換える</span>
</h2>
置き換えるときの注意点
balanceだけでは、日本語は言葉の途中で切れることがあります。 文節で折り返すword-break: auto-phraseはまだChromeだけなので、言葉の途中で切りたくない部分は<span>で囲んだまま残します。- 全ブラウザで
balanceが使えるのは、Safari 17.5が対応した2024年5月からです。text-wrapの解禁(2024年3月)より遅れています。 - 本文向けの
prettyは、Firefoxがまだ対応していません。 balanceが効くのは、Chromiumは6行まで、Firefoxは10行までの短い文章だけです。 それより長い見出しでは、指定しても折り返しは変わりません。- 以前の
<br>は、消してから置き換えます。 残すと、その位置で必ず改行されます。
フォールバック
未対応のブラウザでは、普通に折り返すだけで、見出しはそのまま読めます。
<span>のwhite-space: nowrapは未対応のブラウザでも効くため、言葉の途中で切れないことも変わりません。
対象の5ブラウザはすべて対応済みなので、通常は何も足す必要はありません。
Browser Support
Chrome
v114+2023-05-30Edge
v114+2023-06-02Safari
v17.4+2024-03-05Safari (iOS)
v17.4+2024-03-05Firefox
v121+2023-12-19