@charset "shift_jis"; について



0   名前: もんきち : 2005/09/17 17:15
はじめまして。
CSSでWEBデザインがわからずこのページにたどり着きました。
よろしくお願いします。

日産ティーダを参考にCSS作っているのですが
そこのスタイルシートで
「@charset "shift_jis";」
という記述があります。
これは文字コードを指定していると思うのですが、
実際にページとなって出てくる文字コードと異なり
何をしているためのものなのかがわからないのです。
ティーダサイト:http://blog.nissan.co.jp/TIIDA/

一度コピーしてサイトを作った際に、「@charset "shift_jis";」を
記述しない場合、IEではうまく表示されないことがあり、
CSSに記述するときちんと表示されることがあったので
IEのバグ回避用なのかなと思っております。
(ネスケ、FireFox等では表示される)
ちなみにそのとき生成したファイルは文字コードがUTF-8で
ひとつのスタイルシートに「@charset "shift_jis";」を記述しましたが
特に表示に問題はありませんでした。

ご存知の方がいましたら、お教えいただければと思います。
よろしくお願いします。

1   名前: naka@sukiero : 2005/09/17 17:15
【@charset】
http://www6.plala.or.jp/go_west/nextcss/ref/slctr/at_rule.htm#charset

読んでみて。

2   名前: もんきち : 2005/09/17 17:15
naka@sukieroさん

ありがとうございます。
URL先を参照いたしました。

が、いまいち理解ができず・・・。
@importを使ったときに文字コードの指定として
使用すると書いてあると思うのですが。。。

ですが、ティーダでは実際に出すページの文字コードと
記述が異なっているのがよくわかりません。
現在制作しているサイトでもこの「@charset "shift_jis";」を
はずすとIE5.5以降ではうまく表示されないので
文字コードが違うのですが、記述しています。

やっぱりIEのバグ対策なのでしょうか?

3   名前: もんきち : 2005/09/17 17:15
こんにちは。

しばらく調べて色々やってみて、
「@charset "shift_jis";」はHTMLファイルのではなく、
CSSファイルの文字コードの指定を
記述するものだということがわかりました。

そこで更に疑問がでてきました。
現在、
style.css
center.css
left.css
right.css
というように分けていて
style.cssで@importで他のファイルを読み込んでいます。
left,rightでは「@charset "shift_jis";」の記述は
していないのに正常なデザインになるのに対し、
centerでは必ず記述しないとデザインが崩れるという
感じになってます。

この違いはお分かりになりますでしょうか?

よろしくお願いします。

4   名前: Pid : 2005/09/17 17:15
各ファイルの文字符号化方式(文字コード)はどうなっていて,どのように指定しておられますか。

現段階では全てが推測の域を出ないので,実際のファイルを拝見するのが手っ取り早いと思います。

5   名前: もんきち : 2005/09/17 17:15
Pidさん こんにちは。

CSSファイルは全てShift-jis形式で保存しており、
center.css以外は特に指定する記述はしておりません。
それなのにcenter.cssのみが記述しないと
表示されないというようになっています。

実際のファイルですが、連休明けに
みなさんに見ていただけるようにしたいと思っています。


一覧へ戻る