【入門編】インライン要素内の単語分割と折り返し – HTML実践ガイド

なぜその「長い単語」はレイアウトを突き破るのか?CSSで制御する文字折り返しの魔法

Webサイトを作っていると、たまに「やってしまった!」という瞬間がありませんか?
せっかく綺麗に組んだレイアウトなのに、ユーザーが入力した長いURLや、英単語の羅列が、枠を突き破って画面の端まで突き抜けていく……。

「なんで改行してくれないの!?」とPCの画面を睨みつけた経験、一度はありますよね。大丈夫、それはあなたが悪いわけではありません。ブラウザという名の「真面目な職人」が、単語の途中で切るのを遠慮しているだけなんです。

今日は、そんなインライン要素内の「折り返し問題」を、身近な例えを交えながらスッキリ解決していきましょう。

—

「単語」は一つの塊?それともバラバラの文字?

まずイメージしてください。あなたは今、「長いソーセージ」をパンに挟もうとしています。

  • 日本語(文字単位):ソーセージを包丁で細かく輪切りにできるので、パンのサイズに合わせて調整するのが簡単です。
  • 英語やURL(単語単位):このソーセージは、なぜか「一本の硬い棒」として扱われます。パンからはみ出しても、「おいそれと切るわけにはいかない!」と頑固に主張するんですね。

この「頑固なソーセージ」を、どうやってパンの中に収めるか。ここで登場するのが `word-break` と `overflow-wrap` という二つの魔法です。

—

1. `overflow-wrap: break-word;` —— 「困ったときだけ切る」優等生

まずは一番のおすすめ、`overflow-wrap` です。これは非常に紳士的なプロパティです。

「基本的には単語を壊したくないけど、どうしても枠に収まらないなら、その時だけ仕方なく切っていいよ」というルールです。レイアウトを崩さずに、でも画面からはみ出さないように調整してくれる、頼れる存在ですね。

.text-container {
/ 枠からはみ出しそうになったら、単語の途中でも折り返す /
overflow-wrap: break-word;
}

迷ったら、まずはこれを使っておけば間違いありません。

—

2. `word-break: break-all;` —— 「とにかく全部切る」切り込み隊長

次に `word-break: break-all;` です。これはちょっと強引な性格です。

「単語の区切り? そんなの関係ない! 枠の端にぶつかったら、たとえ単語の途中だろうと、有無を言わさず改行する!」というスタンスです。

一見すると便利そうですが、英語の文章などで使うと、単語の途中でブツ切りにされてしまい、読む人が少し読みづらさを感じるかもしれません。ただ、URLやコードのような「単語の意味が分からなくてもいいもの」に対しては、この強引さが逆にピッタリ合うこともあります。

.code-snippet {
/ 単語の区切りを無視して、枠の端で強制的に折り返す /
word-break: break-all;
}

—

実践!こんな時はどっちを使う?

初心者の方が一番悩むのは「どっちをいつ使えばいいの?」という点ですよね。現場の感覚をシェアします。

  • ブログの本文や解説文:迷わず `overflow-wrap: break-word;` です。読みやすさが一番大切ですからね。
  • ユーザーのプロフィール名やSNSのID表示:ここも `overflow-wrap: break-word;` でOK。
  • URLの羅列や、英数字の長い文字列が並ぶエリア:`word-break: break-all;` でガシガシ折り返してもらうのが、デザインを崩さないための賢い選択です。

—

まとめ:怖がらずに色々試してみましょう!

Web制作は、まさに「ブラウザとの対話」です。
「どうしてそうなるの?」とブラウザの性格を理解してあげれば、怖いことは何もありません。

URLも長い英単語も怖くない!


https://very-long-long-url-example.com/how-to-solve-text-wrapping-problems-in-web-design

最初はうまく折り返されなくて焦ることもあるかもしれません。でも、CSSを一行書き換えるだけで、画面がピシッと整うあの瞬間は、何度経験しても気持ちいいものです。

ぜひ、あなたのサイトでも試してみてくださいね。応援しています!

コメント

タイトルとURLをコピーしました