#?SuikaWiki/0.9 [1] [CODE[Content-Style-Type:]] 欄は、 [[HTML4]] (>>2) が規定する [[HTTP]] [[頭欄]]で, 当該[[実体]]の既定[[スタイル・シート]]の[[媒体型]]を指定します。 [3] 細かい構文は規定されていませんが、 [[HTTP]] の [[Content-Type:欄]]と同じと考えて良いでしょう。 パラメーターが使えるのかどうかは不明 (HTML4 では全体的に「媒体型」にパラメータも含まれるか不明。) ですが、実際には使用している例が観測されていますし、媒体型の定義によってはパラメータがないと型を完全に特定できませんから、使用可能と考えるのが良いと思われます。 [4] [[charsetパラメーター]]は一般に指定出来ません。 [CODE[Content-Style-Type:]] の指定対象であるスタイル・シートはその実体に組み込まれたものであり、 [CODE[charset]] は既に [CODE[Content-Type:]] 欄の指定などで判明しているはずだからです。 むしろ存在した方が、解釈に要らぬ混乱を起こす虞もあるでしょう。 [7] HTML4 では、次の優先順で「既定スタイル・シート」が決定されます。 = [[meta]] 要素での指定の内、一番最後のもの。 = HTTP 頭での指定の内、一番最後のもの。 = [CODE[text/css]] この規定から、この欄は (意味はないものの) 複数指定可能なことが窺えます。 実際 ([[内容折衝]]などの処理の関係で) 複数の HTTP 頭欄を送るサーバーがあります。 また、 [[HTTP]] の規定から、複数の頭欄を置ける場合は、読点区切りで一つの欄内に複数の値を書ける必要があります。 [8] 以上から [CODE[Content-Style-Type:]] 欄の構文を推定すると、次のようになります。 - [9] Content-Style-Type = "Content-Style-Type:" [FWS] media-type-list [FWS] - [10] media-type-list = media-type *([FWS] "," [FWS] media-type) - [11] media-type = type "/" sub-type *([FWS] ";" [FWS] parameter) ;; See [[RFC2616]] [12] >>7 の順序は、 「[CODE[meta]] 要素内の HTTP 頭欄代替表現は実際の HTTP 頭欄の後に続いて存在する」と考えることで、「一番最後の頭欄の、一番最後の項目」 と言い換えることが出来ます。 [13] ところで、この既定のスタイル・シート指定が適用されるのは [[style]] 属性の値ですが、 HTML4 の同じ節の規定によると、 [CODE[style]] 属性がある場合は [CODE[Content-Style-Type:]] の指定が必須です。 この規定が守られている限りは >>7 の3番目の処理に行くことはないはずです。 (実際には守られていないことがあるので >>7 の3番目をエラー処理として行うのですけど。) [[#comment]] * 例 - [5] [SAMP[Content-Style-Type: text/css]] - [6] [SAMP[]] [22] [[Apache]] の [CODE(file)[[[.htaccess]]]] を使って >>5 を指定するためには、 [PRE[ <[[IfModule]] mod_headers> [[Header]] set Content-Style-Type "text/css" ]PRE] と書きます。 ([[名無しさん]]) [[#comment]] * 歴史 [20] この欄の [[W3C]] draft 初出は 『HTML3 and Style Sheets』 (1996年7月10日) です。 [WEAK[(この WD はその後の HTML 4 のスタイル・シートの章の直接の祖先です。)]] この時点で既に HTML 4 最終版とほぼ同じ規定ですが、 [CODE(HTML)[[[style]]]] 要素型の [CODE(HTML)[[[type]]]] 属性は必須でありませんでしたし、 [CODE(HTML)[style]] 属性を使っていても CST: 欄は必須ではありませんでした。 現在でも CSS が既定値になっている (>>7) のはこの時以来の名残でしょう。 [21] この措置は当時の [[NN]] や [[IE]] の実装との互換性を考えれば妥当なものでした。 それが HTML 4 では必須化されたのは[[未来との互換性]]を重視したとでも言えましょう。 [[#comment]] * 参考文献 - [2] ''Style Sheets in HTML documents (Setting the default style sheet language)'' - [14] ''XHTMLでのCSSスタイルシート・対応表'' - [15] ''HTMLでのCSSスタイルシート・対応表'' [[#comment]] * メモ - [16] [[SVG]] には [[svg]] 要素に [CODE[contentStyleType]] 属性があり、これを使って既定スタイル言語を指定します。 (''Styling - SVG'' ) - [17] >>16 ちなみにこの既定値は [CODE[text/css]] です。 - [18] >>16-17 古い [[WD]] では、 [CODE[Content-Style-Type:]] を見ていましたが、削除されました。 (''Styling'' ) 既定値はやはり [CODE[text/css]] でした。 - [19] は実際には [CODE[text/css]] 以外は [[style]] 属性では使われないと語ってます。 [23] 親戚: [CODE(HTTP)[[[Content-Script-Type]]]] ([[名無しさん]])