Affamative Way

前向きにグダグダいいながらコード書く

FireFoxのテキスト自動改行

テキストの自動改行をコントロールするword-breakプロパティ - builder

今回は、テキストの自動改行の処理方法を指定するword-breakプロパティを紹介する。Internet Explorerが独自拡張したプロパティだったが、CSS 3の草案「Text」に採用され、現在ではSafari 3やChromeも対応している。


この記事見て、FireFoxで文字列が上手く自動改行されないこと過去に書いたのを思い出したので主要なブラウザで再度試してみた。

試したコード

<style type="text/css">
.wd{
	background:#ccaaaa;
	display:block;
	width:260px;
	white-space:normal;
	word-break:break-all;
}
</style>
<b>日本語の文章</b>
<div class="wd">
こんにちは。今日はいい天気です。ずっと雨続きで、やっといい天気になりました。
</div>
<b>英語の文章</b>
<div class="wd">
Hello,it is fine today. It had been rainning. but finally, good weather.
</div>
<b>かなの連続</b>
<div class="wd">
あいうえおかきくけこさしすねそたちつてとなにぬねのはひふへほまみむめも
</div>
<b>全角数字</b>
<div class="wd">
0123456789012345678901234567890123456789
</div>
<b>連続した英文</b>
<div class="wd">
asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf
</div>
<b>長いURL</b>
<div class="wd">
http://builder.japan.zdnet.com/sp/css-firefox-safari/story/0,3800083423,20381014,00.htm
</div>

「word-break:break-all」は任意の位置で自動改行を行うというプロパティです。

なお、試した各種ブラウザは 2008/09/29時点での最新バージョンです。

IE6の場合


すべて、自動改行される
※手元の環境だとIE7のインストールがなぜかうまくいかず、IE7以降は試せていない。。

FireFox2の場合


全角数字や連続した英文、長いURLの場合に改行が行われない。

FireFox3の場合


やはり全角数字や連続した英文は改行は行われない。
しかし、長いURLの場合は「/」単位で改行が行われるようになった。

choromeの場合


正しく改行が行われる。

Safariの場合


正しく改行が行われる。

Operaの場合


連続した英文は改行は行われない。
また、長いURLの場合は「/」単位で改行が行われる。

まとめ

ブラウザ かなの連続 連続した
全角数字
連続した
英字
長いURL
IE6
FF2 × × ×
FF3 × × △(※1)
chrome
safari
opera9.5 × △(※1)

(※1)△ … "/"単位での改行となる


FF2は前回調べた限りブラウザの仕様っぽいですが、FireFox3やOperaの場合に逃げる方法はあるのだろうか。。
んー調査不足です。もう少し調べてみます。



冒頭で紹介したZDNetの記事の次の連載に、word-breakのくわしい定義や設定ごとのブラウザの挙動が載ってます。これはWeb屋さん必見かと。
CSS 3におけるテキストの自動改行と禁則処理の定義 - builder