2005年12月 6日(火)の日記
(全1件)

ようやく改行が直りました

2005年12月 6日(火) 16:17 | 日記

パソコンでこの日記を見ている方の大半が、WindowsのInternet Explorerを使っています。
「なんでこの日記は改行がないのか」
「読みにくい」
と思われた方も多いと思います。
でも実際は、文章を読みやすくするために、ところどころに空行を入れていました。
IE以外のブラウザー、たとえばFirefoxOperaでは、空行は正しく表示されました。しかし、大多数のユーザーが使用するIEだけが、入れたはずの空行が表示されなかったのです。

今日、ようやくその原因が分かりました。
この日記では、文章を読みやすくするために文字と文字の間に1ピクセル分のスペースを空けています。
専門的な話になりますが、ブログの本文にあたる部分について、スタイルシートで以下のような記述をしています。

letter-spacing:1px;

しかし、この記述をした部分については、IEではbrタグによる連続した改行が、なぜか1行分の改行しか反映されないのです。
つまり、日記を書くときにどれだけ改行を入れて空行を作っても、IEでは空行が表示されないわけです。
これはIEのバグです。つまりはマイクロソフトの不備です。シェア9割のソフトなのに、こんなバグを平然と放置しているのです。呆れたものです。

そのバグを回避する方法が、以下の記述です。

br{letter-spacing:0;}

brタグの文字間を0ピクセルに指定することで、上記の文字間指定がbrタグについて適用されなくなり、その結果としてIEでも改行が記述通りに表示されるようになるわけです。
それにしても、単なる改行を表すタグのbrに「文字間の指定」をするなんて意味が分かりませんね。これだからマイクロソフトは…。

ともあれ、これでIEでも改行が正しく表示されるようになったので、今までよりはいくぶんか読みやすくなったはずです。

IEには上記のバグの他にも、スタイルシートの表示に関するさまざまなバグがあるので、できれば別のブラウザーを使うことをおすすめしたいところですが、困ったことに世の中には「間違った仕様」のIEに合わせて作ったサイトが数多く存在するので、「正しい仕様」のFirefoxやOperaだとうまく表示されないサイトも多いのが現実です。もちろんFirefoxやOperaにもバグは存在するわけで、100%正しいわけではないのですが。
結局、「仕様が正しいか正しくないか」の判断は、スタイルシートやHTMLの文法に沿っているかどうかではなく、「シェアが多いか少ないか」で決まってしまうんですよね。
ただ、サイトを作る人には、せめてIE以外のブラウザーでも正常に表示されるかチェックしていただきたいものです。シェア5%のブラウザーを使い続ける僕みたいな人もいるわけですから。