- ベストアンサー
CSS 文字コード宣言をはずした時の弊害について
bodyタグに font-family:"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; を設定してるのですが @charset "Shift_JIS" をはずすことによって弊害はございますか? 今のところ、文字化けやデザイン崩れなどは起こっていません WindowsXPで下記のブラウザ確認済み IE6、7、8 FireFox2 Opera10 GoogleChrom10 Apple Safari4 ブラウザバージョンの違いや、OSの違いにより文字化けやデザインが崩れなど起こるのでしょうか? よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ブラウザはさまざまな方法で外部スタイルシートの文字コードを決定、類推します。 HTTP応答ヘッダ、@charsetがない場合でも、HTMLの文字コードと同じだと類推します。 <link rel="stylesheet" type="text/css" href="./styleSheet/standard.css" charset="Shift_JIS"> もよいかも。 しかし、@charsetがあるために、動作が遅くなるという現象は私も初耳です。ただ、IEは仕様に厳格なので、正しく記述する必要があります。 CSS2の構文 - CSS2リファレンス ( http://hp.vector.co.jp/authors/VA022006/css/syntax.html#at-charset-rule ) すなわち @charset "Shift_JIS"; ★ひとつのスタイルシートには一度だけ ★スタイルシートの先頭<空白もだめ!!> ★埋込まれたスタイルシート内には出現させられない ★直後に空白(0x20)をひとつ ★続いて文字符号化方法の名称を二重引用符(")で括って示す。 ★その直後にセミコロン(;) この記述が間違っているために、IE8が混乱している可能性があります。 基本的には記述するべきです。外部スタイルシートは他のファイルからも参照されたり、プログラムからも利用されることを想定していますから、記述しておけば管理が楽です。 >ブラウザバージョンの違いや、OSの違いにより文字化けやデザインが崩れなど起こるのでしょうか? ありえます。ブラウザのバージョンや設定によって、CSSの文字コードを間違って類推するものもあるようです。 もう一度記述を確認してください。 @charset ( http://home.e02.itscom.net/shouji/pc/css/ss-rule.html ) 文字コード宣言は行いましょう(CSS) - Web標準普及プロジェクト ( http://www.mozilla.gr.jp/standards/webtips0023.html )
その他の回答 (3)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
"MS Pゴシック"、"ヒラギノ角ゴ Pro W3"などの文字を認識できず、 「指定されたフォント名がインストールされていない」と扱われることがあります。 たとえばブラウザのデフォルトフォントをメイリオにしていると、 MS Pゴシックでは文字幅が違いますし、それが原因でデザインの崩れになる可能性があります。 デザイナーにとってはフォントが違うのは致命的だと思いますが、 どうしてもMS Pゴシックで表示したければ、CSSでfont-familyを指定するのではなく、 画像で作成して、画像置換するか、 全面フラッシュやPDFにして、フォント埋め込みにすべきだと思います。
お礼
>"MS Pゴシック"、"ヒラギノ角ゴ Pro W3"などの文字を認識できず、 「指定されたフォント名がインストールされていない」と扱われることがあります。 そうなのですね。その場合デフォルトのフォントで表示されるのでしょうか。 それならばまあいいかと思うのですが(←よくないですね)やはりデザインが崩れてしまうのはよろしくないですね・・・。 @charsetちゃんと記述させていただきます ご回答ありがとうございました
- torayoshi
- ベストアンサー率62% (910/1449)
#1です。 文字コード宣言すると重くなる原因は分からないけど、 弊害としては、これしとかないと一部の開発を終了したブラウザの古いバージョンで誤読する。 みたいな記事もありますね。 また、仕様書にも「書きなさい」とあるようです。 「私なら」で書きますが、メモ帳でCSS書いてるならデフォルト(ANSI)で保存すればShift_JISになるんだから特に宣言はしない。 開発を終了したブラウザは無視する。 申し訳ないのですが、環境の違いによる検証は出来ません。
お礼
>メモ帳でCSS書いてるならデフォルト(ANSI)で保存すればShift_JISになるんだから特に宣言はしない。 そうなのですね。基本的なことなのかもしれませんが初耳でした 勉強になりました >申し訳ないのですが、環境の違いによる検証は出来ません。 いえ、充分です。何度もご回答いただきありがとうございました >文字コード宣言すると重くなる原因は分からないけど 申し訳ありません その後、私の方で検証を行ったところ どうやら原因はCSSのコード宣言ではなさそうです。 お騒がせして申し訳ございませんでした
- torayoshi
- ベストアンサー率62% (910/1449)
CSSが外部ファイルならHTMLとCSSの文字コード宣言を統一しないと文字化けもするでしょうけど、 HTMLのヘッダーにCSSを書く場合なら関係ないのでは?
補足
ご返答ありがとうございます 説明不足で申し訳ありません。CSSは外部ファイルです PHPで作成しており、PHPファイルはshift_jisとしています こんな検証などしないでとりあえず入れておけという感じなのですが、 何故かCSSの文字コード宣言をしていると重くて開かないページがあると 外部から指摘がありまして・・・ どうやらWindows7で起こっているらしいのですが、原因はまったく不明です そちらを検証している暇もなく、 取り急ぎ文字コード宣言はずして対応しているのですがそれによって未確認のブラウザやOSでデザイン崩れがあっても困るなと思い質問させていただきました ご教示いただけると幸いです
お礼
>ありえます。ブラウザのバージョンや設定によって、CSSの文字コードを間違って類推するものもあるようです。 やはりそうですか・・・ 一部のブラウザで問題なかったからといって安心はできませんね 記述については改めて確認しましたが問題ございませんでした >@charsetがあるために、動作が遅くなるという現象は私も初耳です。 私もです・・・ No2さんのお礼でも書かせていただきましたが 原因はCSSのコード宣言ではありませんでした 大変申し訳ございませんでした ただ、CSSの文字コード宣言については今回のことでとても勉強になりました 詳しくご説明いただきありがとうございました
補足
より詳しくご説明くださったとうい点でORUKA1951さんをベストアンサーとさせていただきます。 ORUKA1951さんありがとうございました torayoshi さん、taloo さん もありがとうございました またよろしくお願いいたします