2/22のテキストなんかに顕著に表れているんですけど、IEって自動改行がうまくいかないことがあるんですよね。Mozillaならば普通に自動改行してくれるのですが。
そんなわけで、IEはいったいどのような条件で自動改行を行っているのか、ということを調べるべく、こんなものを作ってみました。
CSSによって幅を0ピクセルに固定したブロック内に20〜7Eまでの1バイト文字(ASCIIコード)を羅列したもので、ボーダー表示の都合もあり、CSS対応のIEで見て頂きたいと思います。
これによって推測できるIE5.01における改行挿入可能条件は…
- 「!」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「$」の直前、但し「(」「[」「{」「\」「#」「'」「"」の直後を除く
- 「%」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「(」の直前、但し「(」「[」「{」「\」「#」「'」「"」の直後を除く
- 「)」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「-」の前後
- 「?」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「[」の直前、但し「(」「[」「{」「\」「#」「'」「"」の直後を除く
- 「]」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「{」の直前、但し「(」「[」「{」「\」「#」「'」「"」の直後を除く
- 「}」の直後、但し「)」「]」「}」「!」「?」「'」「"」「/」「.」「:」「;」の直前を除く
- 「 」(スペース)そのもの、但し前後のスペースはまとめて一つのスペースとし、但し「(」「[」「{」の直後及び「)」「]」「}」「!」「?」「/」「.」の直前を除く
と、なっているようです。抜けはあると思いますが。
つまり、上記の記号を除く1バイト英数記号を連続して書き込むこまれると一切の自動改行が行われない、ということになりそうです。
これはこれで単語が読みやすいように、との配慮なのでしょうが、ボックスの幅を拡張してまで維持しなくても…
掲示板とかUAとかでこれを利用すると、IE限定ではあるけれど故意にデザイン崩せるんだねぇ…