Affamative Way

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

FireFoxの憂鬱

特定領域内の連続した文字列の自動改行を行いたい場合に
以下のようなコードを書いて試して色々と試していたところ。。*1

<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">
Apache Struts 2 is an elegant, extensib
</div>
<b>全角数字だと</b>
<div class="wd">
0123456789012345678901234567890123456789 さん
</div>
<b>連続した英文だと</b>
<div class="wd">
asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf
</div>

IEでは以下のスタイルがあるので。。。。

word-break:break-all;

↓うまいこと表示されてくれるのだが


firefoxがどうも。。。。
↓うまくいかないね。。。


んで、それに対するFFの逃げ道を色々と調べていたところ。。。

長い URL の自動改行 - えむもじら

長年、Gecko の大きな不満の種の一つであった、長い URL が折り返されない問題(Bug 255990、Bug-jp 1476)がようやく解決されました。Trunk でその動作を確認できます。これは Firefox 3の目玉の一つになるでしょうね(目玉というにはさびしいですが)。

Geckoのバグなもよう。。。


さらに調べていると

改行関係のバグ、第二陣 #2 - WebStudio

一応、本家では様々な副作用が指摘されていて対策パッチをアップデートし続けている状態。対策は基本的には「Westernな文字っぽい開き括弧クラス」と、「Westernな文字っぽい閉じ括弧クラス」をでっちあげて(JIS X 4051にそんなクラスは無い)、「Westernな文字クラス」とそれらのクラスが隣接した場合は改行しないようにしている。つまり、改行される箇所は徐々に減らしている。

いろいろと根がふかそうです。。

08/09/28 追記

FireFox3を踏まえて再度、調査してみました。

*1:このコードの文字がまさにおんなじ現状で改行されてないのね