WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CSSのemと%の違い

0: サタン [WriteDate : Thu Aug 30 07:12:16 2001]

CSSのfont-sizeには、いろんな単位を指定できますが、
その中のemと%の違いがよくわかりません。
このサイトのCSSの説明の、単位と色というところを見ると、
emは現在のフォントサイズを1とした相対指定
%は現在のフォントサイズを100%とした相対指定
となっていました。

ということは、
font-size : 2em  と
font-size : 200%  は
同じ大きさになると思ったのですが、テストしてみると違う大きさで表示されました。
どちらもIEの文字のサイズを中にしてみると同じ大きさなのですが、
一段階変えただけの小や大でもかなり違う大きさになってしまいます。

そこで質問なんですが、
font-sizeを指定するときのemと%はなにが違うのですか?
それと、現在のフォントサイズとは何が基準になっているのでしょうか?
夜も眠れないほどではないのですが、気になってしかたがありません。


1: えぐぜ [WriteDate : Thu Aug 30 07:41:21 2001]

%はそのまま割合で増減指定できます。

0←1em

00
00←2em

000
000
000←3em
わかりますか?
なので、相対的に指定できることになります。


>どちらもIEの文字のサイズを中にしてみると同じ大きさなのですが
これは偶然です。

主にDTP業界で使われる単位だと思います。


2: えぐぜ [WriteDate : Thu Aug 30 07:57:35 2001]

うわ・・めちゃくちゃ。
要はフォントの高さを基準に等倍するんです。


3: +α [WriteDate : Thu Aug 30 08:21:12 2001]

font-size の場合に限っては、
・emは親要素のフォントサイズを1とした相対指定
・%は親要素のフォントサイズを100%とした相対指定
です。
http://www.w3.org/TR/REC-CSS1#font-size

また、「親要素のフォントサイズ」というのは、親要素での計算値ではなく、実際に表示に使ったサイズです。(計算値から適当に丸めた値)
親要素に表示する文字がなかった場合には、計算値かUA任せになって
しまうでしょう。(IEでおかしく見えるのはこのせい?)

なので、
body { font-size: 100%; }
などを入れておくと、少し改善するはず。


4: +α [WriteDate : Thu Aug 30 08:28:10 2001]

「なので、」が繋がってないか。まあ、適当に考えてくださいまし。


5: サタン [WriteDate : Thu Aug 30 09:02:22 2001]

えぐぜさん、+αさん、回答ありがとうございました。

font-sizeが親要素を基準にするのはすぐに理解できました。
しかし、emと%でフォントの大きさが異なるということが、いまいち納得できません。
emがフォントの高さを基準にしているのはわかったのですが、
%はなにを基準にしているのでしょうか。
私の考えでは、高さを基準に2倍しようが、ほかの何かを基準に2倍にしようが、大きさは同じにならないとおかしいと思うのですが。
それとも、おかしいのは私の頭なのでしょうか…

あと1emと指定すれば、そのままの大きさになるはずですよね。
body{font-size:1em;}と、何も記述しないのとで大きさが異なるのはどうしてでしょうか?
もしかして、おかしいのはIEなのでしょうか?


6: Piro [MAIL] [URL] [WriteDate : Thu Aug 30 09:15:17 2001]

ぶっちゃけた話、IEの実装がおかしいということです。


7: あつ [WriteDate : Thu Aug 30 09:23:49 2001]

よこやりのようですが、
emとは「M」のことで、
「フォントの高さを基準にしている」という時のフォントとは「M」の高さのことだと思います。
(ちなみに写植・DTPでは 1000em = 「M」の高さです。)


8: サタン [WriteDate : Thu Aug 30 15:56:04 2001]

>「フォントの高さを基準にしている」という時のフォントとは「M」の高さのことだと思います。
勉強になります。φ(.. )メモメモ
>ぶっちゃけた話、IEの実装がおかしいということです。
おかしいのはIEですか…。
NNで試してみたら、まったく私の期待通りに表示されました。
最初から両方のブラウザでテストしろって感じですね…。

とりあえず、今まで知らなかったemの意味がよくわかり勉強になりました。
回答してくださった皆様、ありがとうございました。
あとは自分でいろいろ試してみようと思います。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World