* Default-Style: 欄 (HTTP) [1] [[HTTP]] の [DFN[[CODE(HTTP)[Default-Style]] [[頭欄]]]]を使うと、 文書の[[優先スタイル]]を指定することができます。 [2] 仕様書: - [[HTML 4]] 14.3.2 Specifying external style sheets [[#comment]] ** 構文 [4] この欄は、[[本体]]として優先スタイルの名前を指定するようです。 構文は HTML 4 仕様書で明記されていませんが、 >>5-6 の例と >>3 の規定から推測すると、 - [7] [CODE(ABNF)[[DFN[[CODE(HTTP)[Default-Style]]-body]] := [FWS] [quoted-style-name / style-name] *([FWS] "," [FWS] [quoted-style-name / style-name]) [FWS] ]] -- 全体が空でも良いのかは不明。 -- 読点による併記は、 HTML 4 仕様書に明記されていない (HTTP 仕様書による一般的な規定による。) ので、できれば使わない方が良い。 -- HTML 4 仕様書の例に倣い、 HTTP では [CODE(ABNF)[quoted-style-name]]、 HTML では [CODE(ABNF)[style-name]] を使う方が安全かもしれない。 -- [CODE(HTMLe)[meta]] 要素では一番最初と最後の [CODE(ABNF)[FWS]] は使わない方が安全かもしれない。 - [8] [CODE(ABNF)[[DFN[quoted-style-name]] := <"> 1*(CHAR − <">) <">]] -- [CODE(ABNF)[[[quoted-pair]]]] または SGML [[実体参照]]・[[文字参照]]または [CODE(ABNF)[[[encoded-word]]]] が使えるのかどうかは不明。 -[15] [CODE(ABNF)[[DFN[style-name]] := 1*(CHAR − ",") − ((FWS / <">) *CHAR *FWS / *FWS *CHAR FWS)]] -- どんな文字が使えるのか不明。間違いなく使えるのは[[基本ラテン文字]]のみ。 -[16] [CODE(ABNF)[[DFN[CHAR]] := <使用できる文字>]] -- [[HTTP/1.0]] では [[ASCII]] + 任意の[[符号化文字集合]]で [CODE(char)[0x80]]〜[CODE(char)[0xFF]] で表現できる任意の文字。 -- [[HTTP/1.1]] では [CODE(charset)[[[ISO-8859-1]]]] で表現できる任意の文字。 -- [CODE(HTMLe)[meta]] 要素では不明。安全なのは ASCII [[印字可能文字]]のみ。 と表せます。 [3] この欄は、 HTTP 頭で欄として、また HTML の [CODE(HTMLe)[[[head]]]] 要素内に [CODE(HTMLe)[[[meta]]]] 要素として、それぞれ任意個指定できます。 [SUP[ [HTML 4] ]] 複数個の指定がある場合には、一番最後のものが採用されます。 (HTTP は HTML より前と見なします。) [SUP[ [HTML 4] ]] [[#comment]] ** 他との関係 [14] 優先スタイルは [CODE(HTMLe)[[[link]]]] 要素によっても指定できます ([[[CODE(HTMLe)[link]]//スタイル・シート]]を参照してください)。 [CODE(HTMLe)[link]] の指定と [CODE(HTTP)[Default-Style]] の指定では、後者が優先されます。 [SUP[ [HTML 4] ]] [[#comment]] ** 実装 [13] この頭欄を実装しているのは、 [[Gecko]] だけ・・・かなあ。 Mozilla の拡張である[[コンテキストメニュー拡張]]はこの頭欄を ([CODE(HTMLe)[[[meta]]]] 要素として) 使っているみたいです。 ([[名無しさん]] [WEAK[2004-03-27 09:39:08 +00:00]]) [[#comment]] ** 例 [5] [SAMP[compact]] というスタイルを [CODE(HTMLe)[[[meta]]]] 要素を使って優先に指定する例 [PRE(HTML)[ ]PRE] [WEAK[(HTML 4 仕様書より)]] [6] >>5 と等価な HTTP 頭欄の例 [PRE(HTTP)[ Default-Style: "compact" ]PRE] [WEAK[(HTML 4 仕様書より)]] [[#comment]] ** 歴史 [11] 1997年7月8日の HTML 4.0 WD これが [CODE(HTTP)[Default-Style:]] 欄の W3C draft 初出。 [12] >>11 から現在まで規定はほとんどまったく変わってません。 [[#comment]] ** 参考文献 - [9] ''XHTMLでのCSSスタイルシート・対応表'' - [10] ''HTMLでのCSSスタイルシート・対応表'' [[#comment]] ** メモ [5] スタイル名は非 [[ASCII]] 文字列が使われることが決して少なくないですから、 >>16 は大問題です。これでは HTTP 頭欄としては使い物になりません。 また、 [CODE(HTMLe)[meta]] 要素 + [CODE(HTMLa)[[[http-equiv]]]] 属性はそもそも HTTP 頭欄として鯖が使うことを想定したものなのですから、 HTTP で表現できないもの (非 ASCII 文字) が HTML [[文書文字集合]]に含まれるからといって使っても良いのかどうか。 [CODE(HTMLa)[[[title]]]] 属性の値ではなく [CODE(HTMLa)[[[id]]]] 属性の値を使うとか, 他の手段はなかったのでしょうか。 [17] 複数の指定がある場合、有効なのは一番最後のものとされています。 つまり [CODE(HTMLe)[meta]] 要素があればその最後が使われます。 折角 HTTP 頭欄によって文書の内容をいじらずに優先スタイルを操作できるというのに、 もし [CODE(HTMLe)[meta]] 要素があれば HTTP でいくら頑張っても上書きできません。 これは欠陥ではないでしょうか。 [[#comment]] * メモ