• ベストアンサー

ブラウザによって異なるフォントサイズについて

ホームページを制作していますが、ブラウザによって文字のサイズが見かけ上違ってしまいます。 具体的には、フォントのサイズが IE8<Safari<Firefox3 になっています。 価格.comなどの有名サイトを見ていると、どのブラウザでも同じサイズに見えます。 スタイルシートに body { font:13px; *font-size:small; *font:x-small; } を書き加えてみましたがあまり変化はありませんでした。 どのようにすればいいのでしょうか?

  • HTML
  • 回答数9
  • ありがとう数0

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

  • ベストアンサー
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.9

だれも、正しいなんて、言っていませんよ。回答した人全て、正しいとは。 ハックなんて、正しくない指定とか、正しいが、他と違う動きだ、とか、そのような物をあえて使うことがハック。 http://troi.kbc-ehime.ac.jp/kj/?p=1672 (あくまで記載されている文献なので、内容の正当性は確認していない) わかりやすいのが、クロスぶらうざで、 if ( document.all ) { dhtml ブラウザ } else { DOM対応ブラウザ } とJavaScriptのコード。これ本来、動作は決まっていなかったが、オブジェクトだとtrueを返すなんて言う隠れた仕様が表にでてきただけ。 http://freematerial.fc2web.com/ref_js/ref_js_w_d_all.html (あくまで記載されている文献なので、内容の正当性は確認していない) 昔あやまって1箇所いサイズにPXを指定していて、他と同じサイズなのに違うサイズになっていた事に気がついたが、しかし、特にエラーにはならずに無視されたか、デフォルトの設定が効いていると思った。が、ちょっと違うようだった。これに気がついたのがIE5.0のとき。(だいぶ他人より気づくのおそかったな) IEのDOCTYPEの設定によりスタンダートか、そうでないかの指定でも違った。他のブラウザでも試したが、反応がまちまち。同じエンジンだと、ほぼいっしょのはずなんだが・・・ 私は、このようなハックのやり方は嫌いだ。しかし便利につかえる所がある。プログラミング的には、ごてごてになるやりかたなので、業務用のソフトでも、緊急避難的に、プラットフォーム(OSなど)のバグを回避して、バグの仕様に付き合ってパッチを出す事が多い。 もちろん、メーカーに(マイクロソフトとかSunとかIBMとか)、パッチ要求しているが、時間的に無理があり、パッチが出るまで、その方式になっているが、結局次期バージョンとかで再度そこのコードを改変しなといけないので、2度、3度でまになっています。そのような経験しているので、ハックはやりたくない。でも、便利だ(セキュリティーパッチなんて嫌いだ)。 その微妙な動作なので、マトリックスを作って、じっくりテストしてください。と言っている。へたすると、時期MicrosoftUpdateで、動作が変わっているかもしれない。他のブラウザも同じ。時期バージョンで、「あ、そこはバグだったので修正しました」なんていわれるかもしれない。そのリスクは十分にある。ただ、ハックを推奨している向きもある。 私と同じように、そのコードを書いた人のミスなら、それは、それとして直す必要がある。 なお、CSSだと無効な物は、無視される事がおおいが、それが実は効いている事もあるので、じっくり吟味してほしい。例えば上位が、12pt で、カレントが 20pxと指定した場合とか。その逆も。そのような所にバグ(仕様)が多い。

その他の回答 (8)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.8

「font プロパティ」はあるけど今の例だと指定が間違ってるから結局アウトでは>#5.

参考URL:
http://www.w3.org/TR/CSS1/#font
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.7

No.1です。 繰り返しますが、pxは相対サイズです。 【引用】____________ここから 相対単位には以下のものがある:  ・em: 関連要素の'font-size'の値を参照する  ・ex: 関連フォントの'x-height'を参照する  ・px: 閲覧しているデバイスの解像度を参照する  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[CSS2の構文と基本データ型( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/syndata.html#length-units )]より 【引用】____________ここから 相対単位に分類されているピクセルはディスプレイでの表示を前提に考えると絶対単位のように思えるかもしれませんが、 これはれっきとした相対単位です。 出力機器の画素の大きさに左右されるためです。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[長さ(length)の単位 - Web標準普及プロジェクト( http://www.mozilla.gr.jp/standards/webtips0027.html )]より  ただ、今回の問題は、font-sizeとなるべきところを、fontと書いてしまったためだと思います。わからないときは、まず仕様書を確認する癖をつけましょう。仕様書を読まずに書かれているサイトやマニュアルもありますので・・

  • tracer
  • ベストアンサー率41% (255/621)
回答No.6

font-sizeのpx指定は、絶対値指定なので、画面解像度以外の部分でブラウザによって差がでることはないと思いますよ。 もちろんブラウザ間で表示されているフォントが異なれば、具合も変わるのでそこは差っ引いてみてください。 問題があるとしたら、CSSのカスケードの仕方です。つまりどこかで記述がおかしくなっていると思います。 ためしに、すべてのCSS(場合によってはJSも)を削除して、 *{ font-size:13px; font-weight:normal; } としてみてください。 どうですか? ブラウザによって差がありますか? この状態で差がないことを確認出来れば、あとはCSSを追加しながら問題がでるところまでコツコツと追いかけるだけです。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.5

どのようなつもりで font プロパティ が無い、と言ったのわかりません。 http://msdn.microsoft.com/en-us/library/ms530756(v=VS.85).aspx http://www.w3.org/TR/REC-CSS1/#font と言うことで基本的なCSS バージョン1 から定義されていましたが? ハックとの組み合わせなので、微妙な動作。ちゃんとテストしないと。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

えっっあまりに初歩的 ★ちゃんと調べて質問なり、回答しなけりゃ。  ネット上に参照すべき資料は必ずある。  font: というプロパティはないですよ。HTMLと間違えてない?? font-size:14px; でなけりゃ・・・elementのattributeと混同しないように font-colorじゃなくて、color:とかも、よく間違う 【引用】____________ここから ・em: 関連要素の'font-size'の値を参照する ・ex: 関連フォントの'x-height'を参照する ・px: 閲覧しているデバイスの解像度を参照する  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[CSS2の構文と基本データ型( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/syndata.html#length-units )]より なお、pxは相対サイズなので絶対サイズで指定したけりゃ 【引用】____________ここから 絶対単位は、出力媒体の物理的性質が予め判っている場合に限り有用である。 絶対単位には以下のものがある: ・in: インチ -- 1inは2.54cmに等しい ・cm: センチメートル ・mm: ミリメートル ・pt: ポイント -- 1ptは1/72inに等しい ・pc: パイカ -- 1pcは12ptに等しい  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[CSS2の構文と基本データ型( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/syndata.html#length-units )]より  たとえばpxは、WindowsとMacでは違うサイズになる。 ★絶対サイズは薦めません。端末やユーザの環境は異なるので、あくまで利用者の標準サイズを基準に決めてあげよう。目の悪い人、解像度の低い端末・・・もあるのですよ。  フォントサイズを指定しなくても表示が崩れないように、それがスタイルシートの目的かも。

  • abacabu
  • ベストアンサー率37% (250/663)
回答No.3

趣味でホームページを作成している30代男です。 まず、ページを訪問した人全てに同じ文字の大きさで 提供しようというのがそもそもの間違いです。 理由としましては、お使いのブラウザそれぞれでの文字の 表示形式を統一しての比較をされていますか? ただ単にブラウザをインストールして詳細設定した後の比較 ですとまだ近い状態には近づくと思いますが、 恐らくブラウザによって「13px」の扱いが違うと思います。 試しに「13px」を「80%」としてみて下さい。 それでもかなり違いますかね? この%表記はお使いのブラウザの文字表示のデフォルトが 仮にIE6でフォントサイズ中の時にmediumuの大きさが16px 相当とします。この時に75%で指定すると、その16pxの75% つまり12px相当の大きさで表示されるというものです。 CSSでは、以前よりpx設定は非推奨されています。 理由は質問者様の抱えている問題の為です。 これはちなみに<p>要素にも反映されます。 という様に全く同じ表示にするという事がそもそも無理です。 おおむねこの位の表示をさせたいとお考えください。 まぁJavaScriptとかで条件を指定すれば全く一緒というのは 可能かもしれませんが、HTML+CSSではなかなか難しいと 思われます。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

まだまだ経験が浅いようだ。 body { font:13px; *font-size:small; *font:x-small; } どこから持ってきたのだろう。 普通、そのままCSS適用する思うが。必要なのは全部のCSS、JSファイル、さあ全部適用して、これはと思う物をはずしてみよう。 それがデバックの仕方。 普通、はずす前に、その使い方が、CSSのどのバージョンで、どのような仕様になっているか調べると思うが、さらにブラウザによって、どのように適用されているのか調べると思うのだが、 どうだろう。 >どのブラウザでも同じサイズに見えます。 そうかな~ ひんとだけ http://www.webbibo.com/blog/htmlcss/selector.html このような人もいる。しかし、テキストを買えば、同じような事が載っているのだが・・・・

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.1

13pxなら、YUIベースで同じに見えるけど、 フォントファミリーは? MS Pゴシックで比較してみれば? body { font:13px/1.231 "MS Pゴシック",sans-serif; *font-size:small; *font:x-small; } body{ font-size:small !important; font-size:x-small;} とか、 body{ font-size:13px !important;} とか、 body{ font-size:13px !important; font-size: 81.2%;} *:first-child+html body{ font-size: small !important;} 色々やってみたら? フォントファミリーや古いブラウザ、DTDによっても違うし・・・

関連するQ&A

  • CSSでブラウザ毎のフォントサイズを統一するには

    IEとFireFoxなど、ブラウザによりフォントの初期サイズが違います。 IEのMideumがFireFoxではSmallに該当するようです。 pxなどの絶対サイズを利用せず、相対サイズで初期サイズをMidiumに統一対応したいと考えています。 何か良いcssハック方法はありませんでしょうか。

    • ベストアンサー
    • HTML
  • firefoxのフォントサイズが変化しない?

    今日、このページを見たら、フォントサイズが変更しないようになっていました。 http://business.nikkeibp.co.jp/article/topics/20070118/117191/ IEですとフォントサイズをpx指定などにすると、ブラウザのほうでフォントサイズを変えても変わらないというような認識をしておりましたが、firefoxでは変化すると今まで思っていたのですが。。 これは、どのように設定するのでしょうか。もしくは、firefoxの仕様がそのようになったのでしょうか。

  • IE8ブラウザ側で文字サイズ変更できない

    Yahoo!開発チームが検証したフォントサイズ統一のCSSとして下記を記述しています。 body { font: 13px 'MS Pゴシック', 'MS-PGothic'; *font-size: small; *font: x-small; } 何故かIE8ブラウザ側の機能で文字サイズを変更しようとすると反応しません。 何かIE8用に記述が必要でしょうか?

    • ベストアンサー
    • HTML
  • body font-size:13px; IE6

    CSSライブラリ YUIの font-size:13px; からの font-size:100%; のセットで、 /* YUIのCSS */ body{ font-size: 13px; *font-size: small; *font: x-small; } div{font-size: 100%;} この場合の以下は、 ------------------- *font-size: small; *font: x-small; ------------------- IE6用の font-size: small と font-size: x-small の為にあるのでしょうか? それなら、CSSでfont-size: small; と font-size: x-small;を使わないで、font-size: 85%;とか使えば上記のハック不要って事でしょうか? <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 上記の様なXHTML,1行目xml宣言付きの場合、 IE6用の *font-size: small; *font: x-small; を書いても font-size: small と font-size: x-small が小さくならないので、 xml宣言ありでIE6では標準にならないのでハック不要って事ですか? IE6で見てもハックを付けても消しても同じなんですが・・・ なんか間違っているのでしょうか?

    • ベストアンサー
    • HTML
  • ブログとブラウザについて

    先日、ライブドアでブログスペースを借り、ブログを始めました。 ブログを付けるのは初めてなもので分からないことだらけなんですが、 IEでブログを閲覧した場合と、Firefoxで閲覧した場合に、レイアウトにズレが生じてしまいます。 常にFirefoxを使用しており、Firefoxでしか自分のブログのレイアウトを確認していませんでした。 ですが、今日IEで閲覧したところレイアウトがすごくズレていて・・・。 特に記事本文がガタガタになっていました。 改行を考慮して1行に文章をまとめていたのに、IEでは2行にわたって本文が続いていたりしていて。 デザインは"デフォルト2005 (ブラック)"を使用しており、カスタマイズ出来るのでCSSを確認してみました。 .main,.mainmore{ font-size:x-small; margin:10px 20px 0; text-align:left; 最初、上記のようになっていたのを、 .main,.mainmore{ font-size:9; margin:10px 20px 0; text-align:left; ブラウザ間でCSS内の"x-large"や"x-small"にズレがあるのかと思ったもので、上記のように直しました。 するとIEではレイアウトがきれいに整ったんですが、Firefoxでは文字が小さすぎて非常に読みづらくなってしまいました。 フォントサイズには、ブラウザ間で差があるのでしょうか。 上の方法はIEで見やすくなったのは良いんですが、Firefoxで見にくくなってしまうのはどうも・・・。 既にたくさんの記事を書いたので、新たに行を整え直すというのは困難を極めます。 同じフォント、同じフォントサイズにも関わらず、ブラウザによって微妙に生じてしまうズレを無くすのは不可能なのでしょうか。 ちなみに、CSSの知識については皆無なので、上記のようにフォントサイズを変えるくらいしか出来ません。 分からないところがあれば訊いてください。 難なく補足します。 贅沢な質問かもしれませんが、回答よろしくお願いします。

  • スタイルシートで基本フォントサイズを指定したい

    スタイルシートで基本のフォントサイズを指定出来ませんか? 今、指定していない為か馬鹿デカイ文字になっています。 (IE文字サイズ中ですが……) なので今回避方法として<span class="xxx">で、 文字をこまめに設定しています。。。 どたなかスタイルシートで基本サイズを指定出来ませんか? <body font-size: 12px;>と指定しても出来ませんでした。。。

    • ベストアンサー
    • HTML
  • スタイルシート、ネスケで基本のフォントサイズが適用されない

    スタイルシートを外部ファイルとして呼び出して、スタイルを下記の様に指定しました。 <style type="text/css"> <!-- body{font-size:13px;} table{font-size:13px;} --> </style> IEではページ全体のテキスト、テーブル内のテキストともに13pxで表示されるのですが、ネスケだとテーブル内の13pxは適用されてもページ全体のテキストに13pxが適用されません。emや%といった単位や相対・絶対値の違いではないと思うのですが、ネスケのページ全体のテキストの指定には他に記述があるのでしょうか? できればスタイルシート1つでIEでもネスケでもある程度同じに見えるようにしたいのですが…お願いします。

    • ベストアンサー
    • HTML
  • cssで最適なfont-sizeの指定は?

    (ブログのカスタマイズ初心者です。過去ログを探しても見つからなかったので、質問させて下さい) cssでのfont-sizeの記述は、どのような形が最適でしょうか? px, em, %, mediamやsmall、その他、単位が色々あって、迷ってしまいます。 pxで指定するのが一般的な気がしますが、IEで文字サイズを変えた時に、変わらないのが不便な気がします。 body {font-size: small;  line-height: 160%; } のような形が良いように思いますが、あまり見かけません。 皆様は、どのようにしていらっしゃるのか、教えて頂けたらと思います。 よろしくお願い致します。

  • ホームページ作成に関する質問です。外部スタイルシートにてfont-si

    ホームページ作成に関する質問です。外部スタイルシートにてfont-size:10px; を指定しているのですが、IEやOpera、NN、Lunascape等のブラウザでは同じ文字サイズで表示されるのですが、FireFoxでは文字が大きく表示されてしまいます。他のブラウザと同じようなサイズで表示出来ないのでしょうか。

  • bodyとtdのフォントサイズの依存関係

    body、tdのフォントサイズの依存について教えて頂きたい事があります。 <style> body{font-size:85%;} td{font-size:85%;} </style> とした時、 <body> フォントサイズ(bodyに直接)<br /> <table> <tr> <td>フォントサイズ(テーブル1つ)</td> </tr> </table> <table> <tr> <td> <table> <tr> <td>フォントサイズ(テーブル2重ネスト)</td> </tr> </table> </td> </tr> </table> </body> bodyのフォントサイズ > テーブル1つのフォントサイズ > テーブル2つのフォントサイズ とネストをする毎にフォントが小さくなります。 この現象を回避する事は出来ますでしょうか。 上記を全て同じフォントサイズにしたい次第です。 ご存知の方がいましたらアドバイス頂けませんでしょうか。 よろしくお願いします。 確認環境は Win IE6 mac Safari3 Firefox2 で上記の動作になります。 Winのfirefoxでは、テーブルをネストしてもフォントのサイズは一緒でした。(body > table1つ = table2つ)

    • ベストアンサー
    • HTML

専門家に質問してみよう