• ベストアンサー

CSSでの大きさの単位について

またまた、お世話になります。 フォントサイズの指定をどの単位にしたら良いか迷っています。 emについて調べると、   親要素のフォントの大きさを 1 とする単位 と書かれていたり、   その範囲で有効なフォントの高さを1とする単位 などと書かれています。 ブラウザの文字設定や解像度などで変わることは何となくわかったのですが、この単位ですと、作成時に大きさがつかめないことはないのでしょうか? また、%はどうなのでしょうか?   他の基準となる大きさに対する割合 と書かれていました。 他の基準というのは、そのページ内の他の文字ということでしょうか? 基準となる文字は何なのでしょうか? 説明の後に(基準はそれぞれ異なります)とあります。 あるページで、違いも確認しましたが、はっきり『こうなんだ』とは理解できませんでした。 どのようなパソコンでも、ほぼ同じように見えるようにするには、どの単位を使うのがいいのでしょうか? 現在は、HTMLのフォントサイズを使ったり、CSSではptを使っています。 皆さんのご意見、アドバイスなどお聞かせ下さい。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#199778
noname#199778
回答No.2

emという単位は、相対的な単位で、その要素のフォントサイズを基準として、アルファベットを表示させた時に「h」などの背の高い文字の上端と、「g」など基準線よりも下に突き出る文字の下端までの高さを1とする単位だったと思います。 フォントサイズが基準になる単位ですが、これをフォントサイズ指定に使用することも可能で、この場合はその対象となる部分の親要素のフォントサイズを1とする単位になります。 たとえば、 <p style="font-size: 24px;"><span style="font-size: 0.5em;">文字</span></p> この場合のspan要素のフォントサイズは、span要素を含む親要素<p>のフォントサイズを基準とするので、その0.5emのおよそ12pxになるはずです。 特にフォントサイズが指定されていない要素が親要素だったら、更にその上の親要素のフォントサイズが基準になります。 body要素以外でフォントサイズを指定していなければ、body要素のフォントサイズが基準になるでしょう。 body要素でもフォントサイズを指定していなければ、ブラウザの基準フォントサイズが基準になるはずです。 個人的には、emという単位は、font-sizeの指定に使う時は、ちょっとわかりにくい単位になってしまうかなと思います… 文字の大きさに合わせてボックスの横幅を可変したい場合(上手くやればテキストの自動改行位置を固定できるかも知れません)や、一行目の字下げを指定する場合などは便利な単位ですね。 フォントサイズのパーセント単位については、その親要素のフォントサイズに対する割合になるはずです。 親要素でフォントサイズが指定されていなければ、その上位の要素のフォントサイズが基準になるでしょうし、body要素以外でフォントサイズを指定していなければ、body要素のフォントサイズが基準になると思います。 body要素でもフォントサイズが指定されていなければ、ブラウザの基準フォントサイズが基準になると思います。 これは上記の例と同じなのではないでしょうか。 どのパソコンでもほぼ同じように見せるのは、案外難しいものです。 ある程度の妥協も必要かと思います。 ただ、どのパソコンでも同じということであれば、絶対単位で指定してしまうのが一番ストイックに目的に近いかと。 pxは各環境の表示の解像度に依存する単位ですし、em、ex(xの文字の高さを基準とする単位)、%については上位要素で絶対単位を使用していない限りは相対的に変化する可能性があります。 pt、pc(=12pt:パイカ)、cm、mm、in(インチ)は環境に依存しない単位ですので、これらを使うと、どの環境でも同じような表示が期待できると思います。 なお、IEでは、スタイルシートでフォントサイズを数値を使って指定すると、その単位がemとexと%以外の場合は、ブラウザの表示サイズを変更しても文字サイズの調整ができない仕様になっているので、IEに配慮するのであればフォントサイズの数値での指定は避けた方が無難でしょう。 あまり小さいフォントサイズを指定しなければ大丈夫とも思いますが… デザインを重視するのであれば、フォントサイズを指定する方法とは逆に、表示される各要素のボックスのサイズをフォントサイズに追従して可変する単位で指定するという逆転の発想もありかも知れませんね。 長々と失礼しました。 参考になれば幸いです。

kyonmimi
質問者

お礼

lead1976さん、詳しい説明、どうもありがとうございました。 参考にさせて頂きます。 それにしても、どの単位を使うかはなかなか難しい問題ですね。

その他の回答 (2)

noname#78418
noname#78418
回答No.3

再度登場です^^; %は、親要素のフォントサイズに対して何%という計算方法となると思いますので、恐らく何も指定していない場合は、bodyにブラウザのフォントサイズを適用、ということで、ブラウザのフォントサイズから相対して何%で表示されることになるかと思います。 いろいろ、難しいですよね。

kyonmimi
質問者

お礼

Scansaさん、再びどうもありがとうございました。 参考にさせて頂きます。 それにしても、どの単位を使うかはなかなか難しい問題ですね。

noname#78418
noname#78418
回答No.1

こんにちは。 あくまで私的な考えなのですが、emはブラウザのフォントサイズで、mを表示させたときの相対比だったと思います。 よってブラウザ側でフォントサイズ中→大にすると、mの高さも変わるので、文字が大きくなります。 %はそのページで、たとえばbody { font-size:12pt; }としていて、h1 { font-size:200%; }とすると、12ポイントの2倍、つまり24ptで表示されるんだったっと思います。 ただ、ptで指定すると小さくて読みにくい、と感じたときにユーザー側で文字のサイズを変えられないので、絶対にやめたほうがよい、というのがある種の定説になっています。

kyonmimi
質問者

お礼

Scansaさん、回答どうもありがとうございました。 %は、やはり、はじめにサイズを指定しておかなくてはいけないということなのでしょうか?

関連するQ&A

  • CSSで一般的でSEOに有効な値(単位)は?

    お世話になります。初めて質問させていただきます。 CSSで使う「font-size」や「margin-top」等の属性の値(単位)は「em」「pt」「px」等、色々ありますが・・・ 【例1】 H1{ font-size: 12px; 【例2】 H1{ font-size: 12pt; 【例3】 H1{ font-size: 1em; 上記以外にも色々と値(単位)が有りますが、どれが一般的でSEOに有効ですか?(H1に限りません) また、CSSでの各種の属性に有効な値等が説明してあるHPなどありますか? 教えて下さい。よろしくお願い致します。

  • CSSで設定する文字の大きさについて

    DreamWeaverを利用してウェブサイトを作っています。 文字の大きさのところで大きさ、0.9em 高さ1.5emで作っていたのですが、知人から「ブラウザの文字サイズを小にすると全く見えない」と指摘を受けました。確か他の人から何かの設定をするとブラウザの文字サイズを小にしても文字がそこまで小さくならない(Yahoo!のような感じです)と聞いたのですが、%、exsで指定してもブラウザの文字サイズが小さいと文字がやたらと小さくなります。フォントサイズの指定はポリシーで設定したくないのですが、どういう手立てがあるでしょうか。CSSの本を読んでもかいていないのです・・・。友達がブラウザの文字サイズを中にする、という答え以外で宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSの単位指定

    素朴な疑問です。 font-size: 0.5emのところをfont-size: .5emというように0を略すことは可能でしょうか。 モダンブラウザで見たところどちらも想定通りの挙動を示したのですが、公式でこの表記は許されているのでしょうか?

    • ベストアンサー
    • HTML
  • p社 ネットショップオーナ-3のcssについて。

    お伺いしたいのですが、ネットショップオーナ-3のレイアウトの件につきまして、 モジュールの間隔を10ピクセルにすると、ページの上マージンまで10ピクセル空いてしまいます。 これをなくすには下記内容の『MCommon.css』を編集すればよいらしいのですが なにを書き込んで良いやら分かりません。もし分かる方がいらしたら 教えていただけると幸いです。 -------------------------------------------------------------------- <!-- form{ margin : 0em ; } input { font-size : 9pt; } textarea { font-size : 9pt; } select { font-size : 9pt; } --> --------------------------------------------------------------------

  • CSSの{font-size:}について

    CSSで{font-size:○○pt;}ってタグがありますよね? そのタグを使ってHPを作ろうと思ってるんですが、 調べてみたら{font-size:○○pt;}では見てる人のブラウザで サイズ変更ができないとのことです。 僕のHPは少し小さめのフォントを使おうと思っているので 見る人が字が小さくて読みずらい、大きさを変えよう。 と思っても変えられないってのは困りますよね? フォントサイズを、中のときあたりに、12ptぐらいにして(標準を決める。みたいな?) ブラウザでフォントサイズを変えると、少し大きくなったり小さくなったりする。。。 ってかんじにしたいんです。 ワケワカメな質問ですみませんw よろしくお願いします。

  • cssの文字の単位について。

    文字指定の単位はたくさんあります。 『cm』『mm』『in』『pt』『pc』『em』『ex』『px』『%』 と、こんなに色々あります。 それで、どれを使うのが一番良いのかが知りたいのです! 私は今まで『px』を使ってきました。 でも、『px』は使わない方が良いという記事を見ました! どのブラウザでもOSでも問題なく見れて、使いやすいのはいったいどれなのでしょう? ご意見または参考サイトなど教えていただければ幸いです。

  • CSSの記述

    HTMLで普通のテキストのサイズを固定したいのですが、 うまくいきません。 何が間違っているのでしょうか。 一部のHTMLだけ、リンクの下線をはずしたいので、 HTMLに <LINK REL="stylesheet" HREF="css/style_win.css" TYPE="text/css"> <STYLE TYPE="text/css"> <!-- A { text-decoration: none; font-size: 10pt;} --> </STYLE> と記述。 こちらの方は大丈夫です。 だめなのは外部 css/style_win.css に body { font-size:10pt } と書いたほうがまったく制御していません。 初心者で、本もたくさん調べましたが わかりません。 どうかお願いいたします。

    • ベストアンサー
    • HTML
  • CSS2.1とCSS3の違いを教えて下さい。

    HTMLの勉強中の作家です。 色々悩んだ末にサイトをHTML5に移行作業中です。 テキストを読んでもCSS3の書式がイマイチよく分かりません。 (CSS2.1の)指定は背景色、文字色(1部文字色変更含む)、フォントの種類、背景色etcetc…と言った至ってシンプルな文字のみのサイトです。 あちこちのサイトを見ながら悪戦苦闘をしていますが、CSSのチェックをかけるとエラーが出ます。 CSS2.1を3にするためにはどこをどう変えれば良いのでしょうか? ちなみに @charset "UTF-8"; .ryoko { color : #407133;} .kazumi { color : #336070;} div,p { color : #222222;} p { font-family: Arial, Helvetica, sans-serif;} body { background-color:#e0ffe0;} a:link { color : #0000ff;} a:visited { color : #003333;} a:hover { color : #660000;} a:active { color:#660066;} p{ margin: 1px 0px 1em 0px; font-size:95%; line-height:103%;} div { color : #222222;} div { font-family: Arial, Helvetica, sans-serif;} div{ margin: 1px 0px 1em 0px; font-size:95%; line-height:103%;} .akeru{ line-height:1em; } ↑これです。テキストとCSS3について説明されているHPと各マチマチなもので戸惑っています。

    • ベストアンサー
    • HTML
  • CSSで文字指定:あるセレクタで指定した値を他のセレクタへ継承させることは出来ますか?

    文字サイズをCSSで指定する方法についての質問です。 同一の文字サイズ指定でも、OS・ブラウザ間で表示にギャップがあります。 そのギャップを調整するために、JavaScriptを使用して OS・ブラウザごとにそれぞれ異なった外部CSSファイルを読み込むようにしています。 macintosh.css windows.css windowsIE.css ...このような振り分けCSSファイルでそれぞれ文字サイズ指定をしています。 CSSファイルの中身は、 macintosh.css .small { font-size: 10px; } /* 小さめ */ .middle { font-size: 12px; } /* 中くらい */ .large { font-size: 14px; } /* 大きめ */ windowsIE.css .small { font-size: 0.8em; } /* 小さめ */ .middle { font-size: 0.9em; } /* 中くらい */ .large { font-size: 1em; } /* 大きめ */ ...といった具合です。 このやり方では、h2の文字サイズを全て中くらいの大きさに指定したい場合、 全てのh2タグに <h2 class="middle"> と記述することになってしまいます。 これは煩雑なので一括指定したいと考えます。 すぐ思いつく方法は、振り分けCSSファイルにh2の文字指定も含めることです。 macintosh.css h2 { font-size: 12px; } windowsIE.css h2 { font-size: 0.9em; }  ...のようなことです。 そうではなく、h2に .middle(=中くらい)で指定した文字サイズをそのまま受け継がせる方法はないでしょうか? h2 { class="middle" } 変な書き方ですが、意図を汲み取っていただけるでしょうか。 このように指定出来れば、かなり省力化出来るように思います。方法があればぜひお教え下さい。

    • ベストアンサー
    • HTML
  • CSSとタグの関係

    おはようございます。宜しくお願い致します。 HTMLに外部スタイルシート(CSS)を組み込み、更にHTML内にタグでスタイルシートと同じ内容のものを書き込んだ場合、そのタグを消さないとCSSは反映されませんよね? 例えば、CSSでフォントサイズを指定したとして(tdにidで指定するとします)、HTML内にフォントサイズのタグを書き込んだ場合、どちらを優先されますか? 例:CSSで、 td#word {font-size: 10pt;} と指定します。それに併せて、HTML内に、 <td id="word" colspan="1"><font size="-1">表示したい文字</font></td> とした場合、指定するものに一番近い指定(<font size="-1">)を優先される…と覚えていたのですが。そして、この場合CSSは効かないと…。 しかし、両方効くはずと言われたことがあるのです。 それと、外部スタイルシートを「外してみているユーザーが居る」と言われた事が有ります。 勉強不足で申し訳有りません。外部スタイルシートの外し方って、どうやるのでしょう? 宜しくお願い致します。

    • ベストアンサー
    • CSS

専門家に質問してみよう