* style 要素・link 要素 media 属性 (HTML, XHTML 1)
[1] [[HTML]] の [CODE(HTMLe)[[[style]]]] 要素および
[CODE(HTMLe)[[[link]]]] 要素 ([CODE(HTMLa)[[[rel]]]]
が [CODE(HTML)[[[stylesheet]]]]) の [DFN[[CODE(HTMLa)[media]] 属性]]は、
スタイル情報が対象としている[[媒体]]を指定します。
これを使って著者は UA がどの媒体でどのスタイル・シートを読込んで適用するべきかを制御できます。
[5]
[CODE(HTMLe)[style]] 要素の [CODE(HTMLa)[media]] 属性は、
その要素の内容であるスタイル・シートについて想定する媒体を記述します。
[[スタイル・シート]]への [CODE(HTMLe)[[[link]]]] では、
[CODE(HTMLa)[media]] 属性には想定する[[媒体]]を記述します。
UA は関係ない媒体用は無視して資源を節約できます。 [SUP[ [HTML 4] ]]
[4] 仕様書:
- [[HTML 4]]
-- 12.3.2 Links and external style sheets
-- [CODE(HTMLa)[media]]
-- 14.2.4 Media types
[[#comment]]
** 属性値
[15] この属性の値は [CODE(SGML)[%[[MediaDesc]]]]
([[媒体記述子]]の読点分離の並び) です。
[16] この属性は省略可能です。 HTML 4 [[DTD]] の既定値はありません
([CODE(SGML)[[[IMPLIED]]]])。 HTML 4 仕様書本文での既定値は
'''[CODE(HTML)[[[screen]]]]'''' です。
多くの UA や著者が既定値は [CODE(HTML)[[[all]]]] だと思っていますが、
そうではないのです。ですから、常に [CODE(HTMLa)[media]]
属性を明示しておいた方が安全です。
[[#comment]]
** 他との関係
[17] [CODE(HTMLe)[link]] 要素の場合、たとえば [CODE(HTMLa)[rel]]
が [CODE(HTMLa)[[[alternate]]]] であっても [CODE(HTMLa)[media]]
属性は有用そうに思えますが、 HTML 4 の規定による限りでは
[CODE(HTMLa)[media]] 属性はスタイル・シートを対象としたものなので、
そのような意味では使えません。
([CODE(HTMLe)[[[a]]]] 要素型で [CODE(HTMLa)[media]]
属性が定義されていないことからも、 [CODE(HTMLa)[media]]
属性がスタイル・シート専用のものであることがうかがえます。)
[DEL[
[2] [CODE(HTMLa)[[[media]]]] 属性が [CODE(HTML)[[CODE(HTMLa)[[[rel]]]]=[[stylesheet]]]]
以外の [CODE(HTMLe)[link]] 要素に対して有効なのかはっきりしません。
この属性は既定値が HTML 4 では [CODE(HTML)[[[screen]]]] なんですけど、
有効だとすると明示しない限り [CODE(HTML)[screen]] 限定の話になってしまいます。
(なお、 [[XHTML 2.0]] では既定値は [CODE(CSS)[[[all]]]] に改められます。)
[3] >>2 [CODE(HTMLe)[[[a]]]] 要素には [CODE(HTMLa)[media]] 属性は無いので、
[CODE(HTML)[stylesheet]] 専用かもしれません。でも、
[CODE(HTML)[[CODE(HTMLa)[rel]]=[[alternate]]]] とかで使うのにあると便利じゃないですか?
]DEL]
[[#comment]]
** 歴史
[12] [CODE(HTMLa)[media]] 属性は ''HTML DTD with support for Style Sheets''
(HTML 3.2 + Style Sheet)
で定義されています (仕様書類初出?)。
値は[[列挙型]] [CODE(SGML)[(print | screen | projection | braille | aural | all)]]
で既定値は [CODE(HTML)[all]] でした。
[14] ''HTML DTD with support for Style Sheets''
で [CODE(HTMLa)[media]] 属性は [CODE(SGML)[[[CDATA]]]] に改められ、
読点区切りで複数の値が使えるようになりました。
[[#comment]]
** 例
[18]
[PRE(HTML)[
]PRE]
[WEAK[(HTML 4 仕様書より)]]
この例では、発表会で投影するときには見出しを青字にし、
印刷版では中央に寄せます。
[19]
[PRE(HTML)[
]PRE]
[WEAK[(HTML 4 仕様書より)]]
この例では、音声 UA で再生する時にリンクの前後で効果音を鳴らします。
[[#comment]]
** メモ
[[#comment]]
* メモ