スタイル・シートの媒体型

スタイル・シートの媒体型

[1] WWW で使われるスタイル言語は、 それを識別するための媒体型名を持っています。 HTTP などの Content-Type: 欄や、 HTMLxml-stylesheettype 属性などがこの値をとって、その本体内容の言語を識別します。

媒体型

text/cssCSSi-CSS
text/x-css-cmmlCMML 仕様書中に例示
application/x-hlink+xmlHLink
text/javascriptJavaScriptStyleSheet
text/jssJISX4052 スタイル指定
text/x-oeb1-cssOEB CSS
text/smil-basic-layoutSMIL基本配置言語
text/spiceSpice
text/t-timeT-Time スタイルシート
text/xslXSL (XSLT)
application/xslt+xmlXSLT
text/xslfoXSL-FO

style 要素 type 属性 (HTML、JDCM)

[25] HTMLstyle 要素の type 属性は、その style 要素の内容スタイル言語を指定します。

[26] 仕様書: HTML 4 IW:HTML4:"present/styles.html#adef-type-STYLE"

属性値

[27] この属性の値は %ContentType です。 SGML 的には CDATA です。

[28] この属性は必須です。従って既定値はありません。

しかし多くの UA では、欠けていた時に text/css を補って CSS として解釈するようです。 (この動作は最初に style 要素で使われたのが CSS であり、 CSS のみであったので、当初の実装が style 要素に type 属性を持たせていなかったことによります。)

[29] XHTML 1 の変種である OEB1 の DTD では text/x-oeb1-css に固定 (FIXED) されています。 (てことは省略可能?)

OEB Publication Structure http://www.openebook.org/oebps/oebps1.0.1/download/oeb101-xhtml.htm

[30] >>11 でも、互換性のために省略しない方がいいことは言うまでもありません。

あえて省略した方が OEB1‐CSS には非対応、 W3C CSS には対応の UA も処理してくれるだろうから・・・という気にもなってきますが、 XML なんだし、そういうことを考えるのは邪道なのかな。

もちろん、本質的な解決策はスタイル・シートは外部に追い出して、 内容折衝text/css と自動振り分けです。

[31] HTML もどきである JDCMstyle 要素では、 type 属性の値が text/jss でなければならないとされています。

歴史

[32] 最初に規定した公式仕様は HTML4 です。

[175] HTML 由来で DTBookstyle 要素にもありました。

実装

[33] NC4text/javascript という値が指定されていると JSSS として認識します。 (HTML UA で CSS 以外が実装されている数少ない例。)

[34] T-Timetext/t-time という値が指定されていると独自のスタイル言語による指定として認識します。 (HTML UA で CSS 以外が実装されている数少ない例。)

[35] type 属性に対応しておらず、 何が指定されていようと CSS と解釈してしまう UA が少なからずあると推測されます。

メモ

layout 要素 type 属性 (SMIL)

[7] SMILlayout 要素type 属性は、 配置言語属性を指定します。

[14]

要素名
layout
属性名
type (type () より)
データ型
媒体型
既定値
text/smil-basic-layout

[13] 仕様書:

データ型

[15] DTD では CDATA として定義されています SMIL 1.0SMIL 1.0 では本文中に特に規定がありませんが、媒体型が値と思われます。

[16] 既定値text/smil-basic-layout で、 SMIL 1.0 で規定されている SMIL基本配置言語を表します。

[17] 仕様書中の例として text/css によって CSS2 を表したものがあります。

関連

[18] この属性layout 要素適合性処理モデルに密接に関係しています。 layout の項も参照してください。

style 要素 type 属性 (XFrames)

[43] XFrames ( 版) http://www.w3.org/TR/2010/NOTE-xframes-20101216/#s_style-element

type 汎用?属性 (HTML)

[19] HTML の多くの(?)要素で、 style 属性のスタイル言語を指定するために type 属性を使うことができるとしている解説 (書籍やウェブ頁) があります。

使用例:

<h1
  type="text/css"
  style="color: red">
ほにゃらかほいほい</h1>

[20] このような type 属性の使われ方は IETFW3C の最終版仕様にはありませんし、 GeckoIE が実装していると言う話も聞きません。 WinIEonload 属性などのための汎用属性 language を独自拡張として持っていますが、 CSS しか使えない style 用にも実装しているとはちょっと考えにくいです。 それなら JSSS にも対応していた Classic Mozilla はと言うと、特に style 属性値の型を指定する方法は用意されていないようです (自動判別?)。

[21]

HTML 4.0 の最初の原案である Style Sheets in HTML documents http://www.w3.org/TR/WD-html40-970708/present/styles.html#style-element 中には、 >>1 と似た、 p 要素にスタイル指定を加えた例文がありました。 指摘を受けてその type 属性は次の原案で削られています。

ところで、その原案の前の版である HTML and Style Sheets http://www.w3.org/TR/WD-style-970324 の同じ例には、 type 属性がありません。 ですから、この原案が出された後、 W3C の HTML WG で type 属性が提案されたものの結局は採用されなかった可能性があります。

ただ、このたった一つの例から汎用属性(?)に出世してかなり広範囲に知れわたったのだとすると話がうますぎます。 大体不思議解説の著者は仕様書の原案なんて読まないでしょう。 (でも本文や DTD は読まないけど新しい tag や属性を漁ってはいるかもしれない。) 他にも出所があるのかもしれません。

[22] 出現例のある要素型:

[23] 出現例:

この属性が載っている解説本もありましたし、 解説頁等ももっとあるかもしれませんが、 検索し難いので全貌がつかめません。

[24] 超有名というほどではないですが、かなりの範囲に広がっている (た) と推測されますけど、共通の親玉みたいなものはいるのでしょうか。別々に発生したとするとちょっと不自然な気がします。

[2] Improve <style> and <script> processing and conformance (domenic著, ) https://github.com/whatwg/html/commit/9c612ac8641b5174849a2d3cb924fe662a8d3a09

[3] Should we remove <style>'s language-agnostic spec prose? · Issue #2995 · whatwg/html () https://github.com/whatwg/html/issues/2995

[5] <style type>/<script type> and MIME type parameters · Issue #3022 · whatwg/html () https://github.com/whatwg/html/issues/3022

[6] Improve <style> and <script> processing and conformance by domenic · Pull Request #3024 · whatwg/html () https://github.com/whatwg/html/pull/3024

[44] Editorial: update usage of the MIME Sniffing Standard (domenic著, ) https://github.com/whatwg/html/commit/fc82f4f8774a2e7e80f6c9477bd881f6c783b186

[45] Editorial: update usage of the MIME Sniffing Standard by domenic · Pull Request #3455 · whatwg/html () https://github.com/whatwg/html/pull/3455