そーりー。じゃぱにーずおんりー。
かなり前から気づいてはいたのですが、このエントリを書く直前まで、当サイトを閲覧する際にIEの[表示]→[文字のサイズ]を「中」以外にすると、文字の大きさが極端に変化しすぎてとても読めたものじゃなくなっていました。特に「小」「最小」の時にひどい。「最小」はもはや文字ですらなかったです。
この問題は前から原因が分からなくて困っていたのですが、どうも、スタイルシートでfont-size属性の値をem単位で指定してることに原因があるようです。(em単位とは、文字の高さを基準とした長さの単位です。font-size以外の属性に関してはその要素自身の文字サイズ、font-size属性に関しては親要素の文字サイズが基準となります。)
em単位で指定した際に文字の大きさを計算する計算方法に問題があるらしいんですが、詳しいことはいまいち……。
少し実験してみた結果、ブラウザで指定されている「文字のサイズ」を基準にemが計算された場合にのみ問題が発生するようです。なんと font-size:1em; という指定をしてもこの問題は生じます。それって計算も何も無い気が……。
以下、その実験で使ったHTMLファイルとそのソース(body内)です。
<p style="font-size:1em;">サンプル</p> <p style="font-size:100%;">サンプル</p> <div style="font-size:100%;"> <p style="font-size:1em;">サンプル</p> </div>
1行目はfont-size:1em; (基準はブラウザの「文字のサイズ」)
2行目はfont-size:100%; (基準はブラウザの「文字のサイズ」)
3行目はfont-size:100%;の内側にfont-size:1em;
となっており、ブラウザの設定がどうあろうと3行とも同じ大きさで見えるのが望ましいです(たぶん)。
「文字のサイズ」設定が「中」の場合は3行とも同じ大きさに見えます。しかし、「文字のサイズ」を「小」や「大」にした場合1行目だけが極端に文字の大きさが変化します。
この問題はIEで確認し、FireFoxでは生じません。
情報処理のレポート課題(HTMLでWebサイトを作る)をやっていたのですが、UTF-8NでHTMLを書くと、ソースファイル上で改行した箇所が、ブラウザで見たときも勝手に改行されてる気がする……???
(このサイトの文字コードもUTF-8Nだから、そんなことは無いと思うんだけど…。)
僕が何か妙なことをやってるのでしょうか???
シンプルなHTMLで実験。
これが文字コードがEUC-JPのもの。UTF-8Nでも、こういう挙動をして欲しい。
まったく同じソースで文字コードがUTF-8Nのもの。なぜか勝手に改行されている。_| ̄|○
何か原因とか、解決策が分かる人教えてください……。m(_ _)m(あきらめてEUC-JPを使えばいいって話では有るんですが…。)
7/10-0:38追記
ブラウザによってはEUCの方も勝手に改行されるようです。ブラウザの挙動がおかしいとかじゃなくて、何か、こう、大きな勘違いをしている気がしてきた。(汗)
でも、今までこんなこと無かったんだけどなぁ。。