「URLなどが途中で折り返しされず表示枠をはみ出てしまう」問題を解決するCSSが紹介されていたので試してみた

海外のサイトで『Wrapping Long URLs and Text Content with CSS』という、長いURLやテキストの途中でも、枠をはみ出すことなく折り返すCSSを紹介する記事を見つけたので、実際のサービスで使えるの?という視点で試してみました。


「URLなどが途中で折り返しされず表示枠をはみ出てしまう」問題とは?


ちょっと前に『Firefox3.1(3.5)では半角文字の途中でも改行できる』でも書きましたが、 ブラウザによっては、記号を含まない半角文字列やURLを途中で折り返すことなく、表示枠をはみ出して表示してしまうことがあります。
画像1・半角文字列で文字が折り返されない例

対策として、文中に強制的に改行を入れたり、<wbr>タグを挿入したりしているサービスもあります。しかしこれは、コードが冗長になってしまいエレガントではないという問題が発生しますし、なにより構造化言語であるhtmlの趣旨に反してしまっています。

また、<wbr>を単純に一定文字数ごとに挿入することで句読点が行頭に来てしまい、可読性を損なってしまう場合もあるようです。(どうせやるなら、せめて禁則処理ぐらいすればいいのに、と思ったりもします)


個人的には「ちゃんと折り返されないのは、ブラウザがそう解釈してるんだから仕方ないじゃん」と思います。
しかし企業が提供するサービスではそうも言ってはいられず、「ユーザーの名前やIDはすべて表示しなければならない」などの厳格なレギュレーションが規定されていることがあり、対応しないといけないもののようです。


表示確認


ということで、前述のCSSが、この問題の救いの神になるのかどうか試してみました。
より実際の使い方に近い動作にするため、
  • preタグ以外のタグでも動作するか(今回はddタグで試しています)
  • 文中に空白スペースが含まれている場合はどうか
  • 日本語の場合はどうか
  • リンクが挿入されている場合はどうか

を各種ブラウザで確認してみました。

ブラウザで動作を確認したい場合やコードを確認したい場合はこちらをどうぞ


safari4(mac)


画像2・safari4(mac)での表示

Firefox3.6(mac)


画像3・Firefox3.6(mac)での表示

Google Chrome5(mac)


画像4・Google Chrome5(mac)での表示

IE8(win)


画像5・IE8(win)での表示

IE7(win)


画像6・IE7(win)での表示

IE6(win)


画像7・IE6(win)での表示

Opera10.5(mac)


画像8・Opera10.5(mac)での画像

Opera9.27(mac)


画像9・Opera9.27(mac)での画像


まとめ


結論ですが、このCSS、使ってもいいけど、別に無理に使う必要はないんじゃないの?となります。ここまで長々と書いておいてなんですが…。

表示結果を見て、最初は「すばらしい!」と思ったのですが、今回のこの表示結果って前回のword-wrapを利用したときと同じなんですよね。
ならば、word-wrapを使った方がCSSが簡潔になるので、そちらのほうが良いと思います。
(word-wrapとwhite-spaceってどう使い分けるんだろう…? 折り返しルールの制御ならやはり“wrap”ってついてるほうなんでしょうか)

word-wrapプロパティに限ってはIE6も先行対応してたりします。Firefox3.0は未対応ですが、これは特に問題にならないでしょう。


ちなみに下記のようなささやかな問題もありますので、念のために書いておきますね。
  • 半角スペースなどの特殊記号が含まれるとどうしてもそこで折り返されてしまう
    • “word-wrap: break-word;”を指定しなければいいのかな?と思ったが、なにも変化はなかった
    • しかし実際のサービスで、これが問題になることはほとんどないと思われる
  • IE以外のブラウザで過去のバージョンだとうまく折り返されない場合がある
    • しかしIE以外のブラウザを使っている人のほとんどはブラウザを最新バージョンにしているであろうし、シェアも低いので考慮しなくて良いと思われる



なにかの参考になれば幸いです。
Web > CSS | comments (0) | trackbacks (0)

Firefox3.1(3.5)では半角文字の途中でも改行できる

個人的には興味がない話題なのですが、調べたついでにエントリー。


なんとなくYahoo!BBのトップページにアクセスしたのですが、微妙に名前部分の表示が崩れていたのが気になりました。
どうやらIDの途中で改行コード(<br>)が挿入されているのが原因のようです。
画面1・名前表示途中で改行されている
画面2・改行が挿入されているソースコード
なんでbrタグを挿入しているのかというと、おそらくですが、FF3.0はword-wrapやword-breakが反映されないため、半角英数字の連続が途中で改行されず、表示が崩れる場合があるからだと思われます。その対策なのでしょう。


この手の表示崩れ対策を行っているサイトはけっこうあります。手段もいろいろあり、途中にbrタグを挿入、細かくwbrを挿入、unicodeのサイトなら幅0の空白を挿入、などが挙げられます。


しかし個人的には、brやwbrを挿入したりするのはなんとなく邪道な気がします。htmlは見栄えを制御するものではなく、文字に意味づけを行うための仕組みだからです。

表示崩れを気にするのなら文字を途中でカットするなりすればいいわけですし、もし本当に1行にすべてを表示しなければならないような情報なら表示領域を広げればいいのに、と思います。


mixiでは表示名が、最大文字数で入力してもちゃんと一行で収まるようになっています。
画面3・mixiは最大文字数で名前を入力しても正常に表示される

友だち一覧部分では表示が崩れることがありますが、無理矢理に改行タグを挿入したりしていません。htmlのルールを守っているからだと思われます。
画面4・一部の画面では表示が崩れる


さて、ここからが本題なのですが。

Firefox3では半角文字が連続したときにテキストが改行されませんが、FFの次バージョンである3.1(3.5)では、CSS3に対応している(らしい)こともあり、改行の指定が反映されて表示されるようです。(サンプルコード
画面5・ブラウザ間のword-wrapとword-break比較画面

これで、特殊な手段で対応する必要もなくなりそうですね。


ちなみにIE8のβバージョンでは、word-wrapが正常に動作しませんでした。試す場合は正式版でどうぞ。


【関連エントリー】
- へたれwebディレクターの覚え書き | hostsファイルの管理ツールと、変更した...
- へたれwebディレクターの覚え書き | overflowを指定するとFirefoxで範囲選択がうまくいかない
- へたれwebディレクターの覚え書き | 目の前の仕事が2分で片付くと思えばその場で片付け...
- へたれwebディレクターの覚え書き | スケーラビリティとは
- へたれwebディレクターの覚え書き | 携帯から投稿テスト
generated by 関連エントリーリストジェネレータ
Web > CSS | comments (0) | trackbacks (0)

overflowを指定するとFirefoxで範囲選択がうまくいかない

自分用メモ書きです。


CSSにoverflowというのがあります。
縦横サイズを指定したブロック要素に内容が入りきらない場合に、はみ出た部分の表示の仕方を指定するためのプロパティです。


このoverflow、どうもFirefoxで指定すると、マウスドラッグによる範囲選択がうまくいかなくなってしまうみたいです。

overflowが指定されたdiv要素の中からマウスをドラッグすると、選択範囲がdiv要素外に広がってくれないのです。


(サンプルに『World Wide Web Guide』様の画面を利用させていただきました)

画面1・Firefoxでoverflowを指定した状態

この動作が正しいのか正しくないのかは分かりませんが、Firefox以外のブラウザではdiv要素外も選択できますし、少なくとも使いづらいことは確かです。


と言うのもわたしは『evernote』というツールを利用しているので、マウスによる範囲選択をよく使うのです。

ブログなどはマルチカラム指定であることが多いのですが、その枠をはみ出さないようにoverflowが指定されていることがよくあります。
Firefoxだと、段落ごとにoverflowが指定されている『こうちゃんの簡単料理レシピ』がevernoteにうまくメモれないので困ってしまうのです。


Firefox3.1で修正されていて欲しいなぁ。


【関連エントリー】
- へたれwebディレクターの覚え書き | Javascriptを勉強し直したい
- へたれwebディレクターの覚え書き | XAMMP再インストールでMySQLが起動しなくなったら
- へたれwebディレクターの覚え書き | エコバッグとレジ袋を考える
- へたれwebディレクターの覚え書き | プルダウンメニューの利用に適した条件とは
- へたれwebディレクターの覚え書き | 「新世代」に対応したサイト内フローについて考える
generated by 関連エントリーリストジェネレータ
Web > 覚書き | comments (0) | trackbacks (0)

7月15日はWeb標準の日

パネリストがすごすぎです。よくぞここまで集めたものだ…。

そんなわけで右カラムにバナーを貼ってみました。
Web > CSS | comments (0) | trackbacks (0)

BANANAサーバー