自動改行されない

FirefoxやNetscape 等、Geckoエンジンを用いたブラウザでは、連続した半角文字(長いURLや半角空白のないスクリプト等)を途中で折り返せない という既知のバグがあります。

【前提:連続する半角英数字が改行されない】 通常、テキストは右端で折り返しされるはずですが、URL (URI) 等の連続する半角文字は一つの単語と扱われ、折り返さない場合が多いです。

つまり、

“aaaaaaaaaaaaaaaaaaaaaaaaa"はコンピュータからみれば一つの単語で、途中に改行が入ることが許されません。

ということです。

参考資料: ・半角文字列の折り返し(ブラウザ毎の比較があります) http://pinotan.blog15.fc2.com/file/word-break.html

【通常の対処方法】

  • htmlタグbrで強制改行。
  • はみ出し部分をCSS(overflow:hidden)で切り落とす。(IE6は親ボックスの幅が広がるバグがあるので、widthで直接的に幅を指定しないと効かない)
  • CSSにword-break:break-allを指定し、IEだけ右端で改行。(ボックス幅の広がりを防げるが、単語区切りにならず英数字が読み辛い)
  • CSSにword-break:keep-allを指定し、IEだけ右端で改行。(単語区切りのみで改行。区切りが無いと全角でも改行されない)
  • 区切り記号を全角にする。(稀に折り返さないケースもある)
  • 半角記号を空白(スペース)で挟む。
  • 単語の区切りなどに<wbr>(<wbr />)を入れる。

参考資料: 7以外は以下の引用です http://pinotan.blog15.fc2.com/blog-entry-106.html

Firefoxの場合、折り返すようにする拡張機能(urlbreaker、urlbreker_plusもしくはGreaseMonkeyを使う方法)があります

ただ、この場合、ユーザーにインストールしてもらわないといけないので、入れていない人にも効かせて欲しい場合は、これをjs化することで対応できます。

参考資料: Firefox・Netscapeで連続した半角文字を折り返す http://www.koikikukan.com/archives/2005/08/04-235647.php

NN7やmozillaでは、なんと全角数字も同じように扱われてしまいます。 しかし記号もそうなのだとは知りませんでした。 参考ページ。 http://www.mozilla.gr.jp/forums/?mode=al2&namber=6847&rev=&&KLOG=47