Safariの禁則処理
Appleのウェブブラウザ、Safariがバージョン3になってから、ときどき日本語の禁則処理が働いていないページを見かけることがある。文末の句読点とか括弧とかが行頭に送られてしまったりするのだ。そうしたページも、Safari以外のブラウザでは正常だし、自分で制作しているサイトではそんなことが起きたこともないので、気にはなっても調べもしないで放ってあったのだが、今日もたまたまそういうサイトを見かけて、この機会に検証してみた。
結論を言えば、スタイルシートに "word-break: break-all" が指定されているページでは、Safari 3が禁則文字まで折り返してしまうらしい。
今のところ "word-break" プロパティはCSS3で策定中のものとはいえ(もとはIEの独自拡張だそうだ)、欧文ばかりでなく和文にまで適用してしまうSafariの仕様にも問題ありだろうな。
サイト制作者に "word-break" を使うのをやめてもらうのが良いのだが、そうもいかないなら、Safariで閲覧する側としては、ユーザスタイルシートを設定しておくという手もある。とりあえず下記のように書いたテキストファイルに適当な名前( xx.css )を付けて保存し、Safariの環境設定で読み込むようにしておけば良い。これで "word-break: break-all" の指定を打ち消せるので、禁則処理が乱れたページを見ることはなくなるはず。
ただ、こうすると今度は、* { word-break: normal !important; }
* { word-break: normal !important; word-wrap: break-word; }
そんなときは、環境設定ダイアログを呼び出して( command + , )、ユーザスタイルシートを一時的にでも外してやれば良いだろう。
追記:クマデジタルさんから、"word-break" の値は "normal" より "break-word" が良いと教えていただいた。なるほど、これなら両立するようだ(上記のユーザスタイルも修正した)。感謝!
追記2:この "break-word" という値を、SafariのCSSリファレンスは "word-break" の値としているので、Safari用のユーザスタイルに書くぶんにはかまわないだろう。しかしこれはW3CのCSS3ワーキングドラフトにはないものだ。こちらに従うなら、長い文字列を折り返すためには "word-wrap" プロパティを使った方が良いかもしれない。上記ユーザスタイルも再度修正しておこう。
| 固定リンク


コメント