overflow-wrap:インライン要素に対してテキストが行から溢れる際に単語の途中で折り返すかどうかを指定する

初期値 normal
適用対象 置換要素ではないインライン要素
継承 する
アニメーション 離散値
対応ブラウザ caniuseで確認

overflow-wrapプロパティの説明

CSSのoverflow-wrapプロパティは、インライン要素に対してテキストが行から溢れる際に単語の途中で折り返すかどうかを指定します。この機能は、もともとword-wrapというプロパティ名で実装されていました。Internet Explorerが独自に採用した仕様であり、後に多くのブラウザが採用しましたが、現在ではoverflow-wrapに置き換えられたものとなっています。

多くの場合、オーバーフローの制御はコンテンツを包含するブロック要素のコンテナで行いますが、本プロパティは長い単語やURLなどの特定の文字列の折り返しを制御したい場合に有効です。

overflow関連のプロパティには以下のものがあります。目的に応じて使い分けて下さい。

overflow-wrapに指定できる値

normal
通常の改行規則を適用します。単語の途中では改行せずに、空白で区切れた箇所で折り返します。
anywhere
コンテンツがボックスから溢れることを防ぐために任意の箇所で折り返します。文字数の多い単語やURLの途中で改行を行いますが、ハイフンを挿入することはありません。コンテンツの最小寸法を計算する祭には、単語の分割によって導入された折り返し可能位置が考慮されます。
break-word
anywhereと同じ規則で折り返しますが、コンテンツの最小寸法を計算する祭に、単語の分割によって導入された折り返し可能位置を考慮しません。

overflow-wrapの使い方とサンプルコード

overflow-wrapプロパティの構文は以下の通りです。


/* キーワード値 */
overflow-wrap: normal;
overflow-wrap: anywhere;
overflow-wrap: break-word;

/* グローバル値 */
overflow-wrap: inherit;
overflow-wrap: initial;
overflow-wrap: revert;
overflow-wrap: unset;

overflow-wrapの実例

それでは実際にoverflow-wrapプロパティの書き方を見ていきましょう。以下の例は、インライン要素の<span>で囲った単語区切りの内容と数字の羅列に対して、同じoverflow-wrapの値を適用した時の比較です。それぞれの文字列がどこで折り返されるのか確認して下さい。


<section class="samp_box">
	<h2>overflow-wrap: normal;</h2>
	<p id="ow_1">
		<span>One Two Three Four Five Six Seven.</span>
		<span>123456789012345678901234567890.</span>
	</p>
	<h2>overflow-wrap: anywhere;</h2>
	<p id="ow_2">
		<span>One Two Three Four Five Six Seven.</span>
		<span>123456789012345678901234567890.</span>
	</p>
	<h2>overflow-wrap: break-word;</h2>
	<p id="ow_3">
		<span>One Two Three Four Five Six Seven.</span>
		<span>123456789012345678901234567890.</span>
	</p>
</section>

.samp_box {
	overflow: auto;
	padding: 0 1rem 1rem;
	background-color: #eee;
}
.samp_box h2 {
	margin: 1rem 0 0;
	font-size: 1rem;
}
.samp_box p {
	max-width: 200px;
	margin: .5rem 0 0;
	padding: .5rem;
	border: 1px solid #aaa;
	background-color: #fff;
}
#ow_1 > span {
	overflow-wrap: normal;
}
#ow_2 > span {
	overflow-wrap: anywhere;
}
#ow_3 > span {
	overflow-wrap: break-word;
}

overflow-wrapに関連するCSSプロパティ

要素の表示や配置方法
bottom 位置指定で配置された要素の底辺からの距離を指定する
break-after ボックスの終了時にページやカラムをどのように区切るかを指定する
break-before ボックスの開始前にページやカラムをどのように区切るかを指定する
break-inside ボックスの途中でページやカラムをどのように区切るかを指定する
clear フロート(float)の回り込みを解除する
clip 要素を切り抜いて可視化する範囲を指定する
box-decoration-break 要素の断片が複数の行やページに渡る場合に装飾の表示の仕方を指定する
display 要素の表示形式を指定する
float 要素を右または左へ寄せて配置する
image-orientation 横向きや逆さまに撮影された写真を正しい向きに回転させる
image-rendering 画像を拡大縮小するアルゴリズムを設定する
left 位置指定で配置された要素の左辺からの距離を指定する
object-fit 画像や動画などの置換要素をボックスに収める方法を指定する
object-position ボックスの中に配置されるオブジェクトの位置を指定する
overflow 要素からはみ出した内容の表示方法をまとめて指定する
overflow-wrap インライン要素に対して溢れる単語の折り返し方法を指定する
overflow-x 要素から水平方向にはみ出す内容の表示方法を指定する
overflow-y 要素から垂直方向にはみ出す内容の表示方法を指定する
position 要素の位置指定の種類を変更する
right 位置指定で配置された要素の右辺からの距離を指定する
vertical-align インライン要素や表のセルに対して縦方向の揃える位置を指定する
visibility 要素の領域を残したまま表示・非表示を切り替える
z-index 要素の重なり順序を指定する