The <wbr>
element in HTML is a tag that specifies a potential break point within long words or URLs, allowing the browser to break the line only when necessary based on the screen width.
<wbr>
要素とは?<wbr>
要素は、"Word Break Opportunity"(単語の切れ目の候補点)を指定するための要素です。
通常、ブラウザは空白文字(スペースやタブなど)がある箇所で単語を自動的に改行できます。しかし、長い単語など空白が含まれていない連続した文字列の場合、ブラウザは自動では改行位置を作れず、文章が横スクロールになったり、レイアウトが崩れる可能性があります。
そこで<wbr>
を使用すると、特定の位置で改行してよいとブラウザに指示できるようになります。
空要素(void要素)の一種です。自己終了タグとして書くこともできます。
例:<wbr>
または <wbr />
画面上で明示的に目に見える要素ではありません(余白や改行自体を無条件に挿入するわけではない)。
ブラウザは必要に応じてその位置で改行できるように扱います。
<br>
や他の改行要素との違い<br>
との比較<br>
は、HTMLで「ここで必ず改行する」と指定する要素です。つまり、文章がまだ行に余裕があっても、その場所で強制的に改行されます。
一方、<wbr>
は「改行候補」なので、行の幅が足りなくなった際にのみ改行が行われるという動的な振る舞いをします。行の余裕がある場合は改行しません。
HTML
<p>強制改行の例:長い単語<br>次の行に移りました</p>
<p>改行候補の例:長い単語の途中<wbr>次の行に移るかはブラウザ任せ</p>
強制改行の例:長い単語
次の行に移りました
改行候補の例:長い単語の途中
※ ブラウザ幅を狭めたり、スマホ表示で確認すると違いが分かりやすいです。
<br>
は必ず改行<wbr>
は、行が狭い状況なら改行し、十分に広ければ改行しない<hr>
<wbr>
のように特定の位置だけ細かく指定するのとは用途が異なります。HTML
<p>
このURLは非常に長く、レイアウトを崩す可能性があります:
https://www.example.com/very_long_path_name_with_many_characters.html
</p>
このURLは非常に長く、レイアウトを崩す可能性があります: https://www.example.com/very_long_path_name_with_many_characters.html
上記のような非常に長いURLが1行に収まらず、ページの横スクロールを引き起こす場合があります。そこで<wbr>
を使って、改行を許可したいポイントを挿入する方法が考えられます。
HTML
<p>
このURLは非常に長く、レイアウトを崩す可能性があります:<br>
https://www.example.com/very_<wbr>long_<wbr>path_<wbr>name_<wbr>with_<wbr>many_<wbr>characters.html
</p>
このURLは非常に長く、レイアウトを崩す可能性があります:
https://www.example.com/very_
<wbr>
を入れた箇所で必要に応じて改行できるので、端末の画面幅が狭い場合でも閲覧性を保ちやすくなります。
※ この例も、画面幅を狭めると挙動を体験できます。
※ 長いURLをリンクとして表示する場合でも、リンク本文内に <wbr>
を入れて構いません(リンク先URLは壊れません)。
HTML
<p>
メール: username<wbr>@example<wbr>.com
</p>
<p>
パス: C:\Program<wbr>Files<wbr>\VeryLong<wbr>Application<wbr>\bin
</p>
メール: username
パス: C:\Program
HTML
<p>
例えば「supercalifragilisticexpialidocious」という非常に長い単語がある場合、
途中で<wbr>をいくつか入れるとスマホ画面などでも読みやすく表示できます。
</p>
HTML
<p>
supercali<wbr>fragilistic<wbr>expiali<wbr>docious
</p>
このように長い英単語でレイアウトが崩れるのを防ぎます。
フォームの入力チェックのエラー文にどうしても長い文字列が含まれてしまう、など特定の文言を任意に折り返したい場合も有効です。
<wbr>
の使用が効果的な場面<wbr>
で折り返しポイントを指定しておくとレイアウト崩れを防ぎやすい。主要なモダンブラウザ(Chrome、Firefox、Safari、Edgeなど)ではおおむねサポートされています(IEは非推奨。最新環境での確認を推奨)。
一部の古いブラウザではサポートが限定的だった可能性がありますが、HTML5が標準化されてからのバージョン(IE11以降など)では基本的に対応されています。
もし非常に古いブラウザ向けの対応が必要な場合は、<wbr>
だけに頼らずCSSのword-wrap: break-word;
やoverflow-wrap: break-word;
などのプロパティと組み合わせて使うことで、より堅牢なレイアウトを実現できます。
考え方の整理:
<wbr>
overflow-wrap: break-word;
hyphens
overflow-wrap
(またはword-wrap
)との併用CSS側で要素の折り返し挙動を設定できるプロパティがあります。代表例として:
CSS
.long-text {
overflow-wrap: break-word; /* word-wrap は古い別名(互換用)。基本は overflow-wrap を使う */
}
これにより、長い単語を強制的に折り返すことができますが、どの位置で折り返されるかはブラウザの自動判定に任されます。
<wbr>
を併用することで、明示的に「ここなら折り返してよい」というポイントを指定可能になるため、見た目や読みやすさをコントロールしやすくなります。
hyphens
プロパティとの違いhyphens
は辞書ルールに基づいて単語の途中にハイフンを付けて改行します。
<wbr>
はハイフンを入れません(見た目はそのまま)。対して hyphens
は実際にハイフン記号を表示して折り返します。
­
(ソフトハイフン)は「そこで折り返されたときだけハイフンを表示」します。自然な単語分割を明示したい場合に使えます。
​
)との違い​
(ゼロ幅スペース。名前付き実体は ​
)は、ブラウザに「ここで改行してもよい」ことを示す不可視の空白文字です。
<wbr>
は要素としてほぼ同じ機能を持っており、HTML内でマークアップとして扱いやすいというメリットがあります。
文字参照を使って挿入する場合は、文字列中に埋め込む形になるため、視覚的に見づらくなる可能性があります。一方、<wbr>
はタグとして明示されるため可読性が高くなる場合もあります。
どちらでもほぼ同じ結果を得られます。通常は可読性・保守性の観点から<wbr>
を使えば十分です。
「タグとして書きたくない」「タグを書けない環境(Markdownや特定のCMSなど)でうまく扱えない」場合はゼロ幅スペースの文字参照を使う、といった使い分けもあります。
<wbr>
は基本的にスクリーンリーダーには影響を与えません。多くのスクリーンリーダーは改行候補として解釈するだけで、余計な読み上げを挿入しません。
ただし、使用環境によっては改行タイミングが不自然に感じられる場合もあるため、文章の区切りや文脈が損なわれないようにする配慮が必要です。
<wbr>
を多用しすぎるとソースコードが煩雑になり、可読性やメンテナンス性が下がる可能性があります。
長い文字列を複数個所で切りたい場合は、やみくもに<wbr>
を挟むのではなく、それが本当に必要な場面かどうかを検討するのが望ましいです。
<wbr>
要素は、改行を強制せずに「ここで改行してもいい」というオプションをブラウザに与えるためのHTML要素です。​
(ゼロ幅スペース)でも同様の効果を得られますが、タグとして扱う<wbr>
のほうが可読性が高い場合があります。<br>
とは異なり、画面幅が十分な場合は改行されず、可変レイアウトやレスポンシブデザインとの相性が良いです。overflow-wrap
やhyphens
との組み合わせ、あるいはアクセシビリティやスクリーンリーダーでの挙動を考慮すると、より高度なテキスト表示制御が可能です。以上がHTMLの<wbr>
要素に関する詳解です。長い単語やURL、識別子などを表示する際に、<wbr>
は役立つツールになり得ます。適切に使いこなし、読みやすく美しいレイアウトを実現しましょう。