管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || アンテナ || PUT || more≫ ≫omit
shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage ||[edit]
category: StoreRoom/2003

StoreRoom/2003/04_CssCharset - CSS に文字コード宣言が必要だった話。

LastModified :
[管理]

CSS に文字コード宣言が必要だった話。

| StoreRoom/2003/04 |

2003/04/03(Thu)

[TOP↑] [管理]

StoreRoom/2003/04/03

2003/04/20(Sun)

[TOP↑] [管理]

StoreRoom/2003/04/20

2003/04/26(Sat)

[TOP↑] [管理]

お話の流れ。

[TOP↑] [管理]
  1. WikiFan/スタイルシートによる画面デザイン変更 のページに、ゲンゲンさんから「<h1>要素のリンク文字列が表示されない」旨の書き込みがある。
  2. ゲンゲンさんのページで白背景に白のリンク文字列が表示されていることを確認し、配布されている CSS で、
    body {background-color:#ffffff;}
    h1 {background-color:#6699cc;}
    h1 a:link {color:#ffffff;}
    が指定されているのを確認した私は、「<h1> の背景色を #ffffff に変更してませんか?」のようなことを返信してしまう。
  3. 「Opera では問題ない」旨の書き込みを見て早とちりに気付き、ローカルで再現のテストをしてみたところ、背景色だけでなく、<h1> 要素の CSS 指定がすべて無視されていることに気付く。
  4. 「CSS の指定の記述に誤りはないのに、なんでだっ」というのが知りたくてしょーがなくて色々試したら、<h1>要素の指定の上に書かれた「24行目のコメントアウト文字列 /* 見出し(*〜、**〜) */」が直接の原因であると判った、というお話。
  5. で、もっと根本的な原因はというと「CSS の文字コードを宣言していないこと」だった、というお話。
    1. 補足:Wiki の生成する HTML が euc、cssファイルが sjis だったための問題らしい。HTML・CSSともに euc、あるいは sjis の場合には上記現象は再現しない。とはいえ、問題が出る出ないに関わらず、「書いたほうがいい文字コード宣言」は「書いたほうがいい」んでしょうね。
    2. 関係ない話:ゲンゲンさんのところで、表示と HTMLソースだけを確認して CSSファイルを確認しなかったのは、キャッシュディレクトリから探し出してくるのが面倒だったからである。時々思うんですけど、「ソースの表示」で外部ファイルがある場合はそれも選択して表示できるといいよね。と思うのは私だけ?

CSS と文字コード。1

[TOP↑] [管理]

StoreRoom/2003/04/26

長々とやっていたこと↓。
<blockquote>
WikiFan/スタイルシートによる画面デザイン変更

</blockquote>

StoreRoom/2003/04/27

CSS と文字コード。2

[TOP↑] [管理]

StoreRoom/2003/04/28

CSS と文字コード。[資料]

[TOP↑] [管理]

スタイルシートが,HTMLのSTYLE要素又は"style"属性におけるように,他の文書に埋め込まれる場合,スタイルシートは,全文書の文字符号化を共有する。

スタイルシートが分離したファイルに存在する場合,利用者エージェントは,次の優先順位を守り,文書の文字符号化を決定しなければならない。優先順位は,高いものから順に列挙する。

1."Content-Type"フィールドのHTTP"charset"パラメタ。

2.@charsetの@規則。

3.参照する文書の言語機構。例えば,HTMLの場合は,LINK要素の"charset"属性。

外部スタイルシートには,@charset規則が多くとも一つ現われてよい。すなわち,@charset規則は,埋込みスタイルシートに現われてはならない。さらに,@character規則は,文書の真に最初に現われなければならず,いかなる文字も先行してはならない。"@charset"の後で,文書作成者は,文字符号化の名前を指定する。その名前は,IANAレジストリに記述されているとおりの文字集合名でなければならない。
4.4_CSS_文書表現(邦訳)

…でもこの引用元が表示できない…。ローカルに保存すると読めるんだけど。<meta http-equiv="Content-Type" content="text/html; charset=x-sjis"> x-sjis って…あの…。

融通のきいてしまうお話。

[TOP↑] [管理]

HTML のやっかいなところは、「融通が利いてしまう」ところ。 適当に書いてもブラウザが「ナントカしてくれてしまう」ので、誤りに気付かないままになる。 「ナントカしてくれる」なら、いっそ「完全に」ナントカしてくれればいいのに、「運が悪いと、困ったことになることもある」のは困る(結局、24行目のコメントアウトの件は、再現の規則性が判らないないまま)。

CSS の文字コード宣言も、「こうしたほうがよい」ではなく、「こうしなさい、しなくちゃだめ、問答無用」ってことになっていれば、どの本にだって記載されるだろうに。 ブースカさんの本と私の本、合わせて5冊、内1冊にしか文字コード宣言の話が載っていないというのは、どうしてくれよう。

HTML については、「最初に覚えた適当なこと」を全て廃棄して覚えなおしたんだけど、その「ついで」に覚えた CSS は場当たり的にリファレンスを引くだけで、あんまりちゃんと勉強してなかった。 やっぱりそこにもワナがあって、今回また、ひとしきり頭をひねってしまった、というワケ。 以前、「適当HTML」で「NN では、<p>タグの中に<div>を置くと、表示が変になる」ことに悩んだようにね。

一応補足:「<p> の中には、どんなブロック要素も置けません」ということが、私の持っていた HTML の本3冊には記載されていなかった。それ以前に「ブロック」と「インライン」の解説もなかったんだけど。ところで私は、「段落の中にリストぐらい置かせて」と思うことがある。「読点の後ろに箇条書き」が不自然なことではないのは、日本語だから? ついでに、「リストにもキャプションをつけさせて」と思うこともある。これは英語でもありよね? と思っていたら、以前追加予定もあったのに消えてしまったらしいと知って「消した理由を言え、W3C!」と思ったのだった。

2003/04/29(Tue)

shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage || [edit]
select css: default | sakura | mono | greenheck | snow | NN4.x用(多分) || LinuZau!! | VikiWiki!? || others |

管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || PUT