スタイルシートのもっとも重要な特徴のひとつは,異る複数の出力媒体――コンピュータ画面,ハンドヘルド機器のような小さな画面,印刷出力,音声出力,点字出力など――について構造化文書のプレゼンテーション(表現方法)を指定できる事にあります。
プロパティのなかには特定のメディアタイプ専用に設計されたものがあります; たとえば頁メディアに適用される'page-break-before'など。異るメディアタイプのスタイルシートが同じプロパティを共有することもありますが,それでも各々が異る値を必要とするのが普通です。
たとえば'font-family'プロパティは,画面および印刷メディアの双方に適用できます。しかし画面では一般にサンセリフ系が好まれるのに対し,一方の紙面ではむしろセリフ系フォントのほうが一般的です。これは紙面印刷のほうが圧倒的に画素密度が高いことに因ります。
これらの理由から,スタイルシート(またはその一部)が特定のメディアタイプ専用であることを明示する必要があります。また,出力対象を特定することにより,UAがサポートしていないメディアタイプのリソースを検索する無駄を避けられる,という点においても重要です。
スタイルシートの対象メディアタイプを特定する方法は,大きく分けて二通りあります。
@import url("handheld.css") handheld;
@media print {
body { font-size: 9pt; }
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Link to a target medium</title>
<link rel="stylesheet" type="text/css"
media="print, handheld" href="foo.css">
</head>
<body>
<p>The body...</p>
</body>
</html>
@media規則はひとつ以上のメディアタイプをコンマ(,
)区切りで指定し,その後につづく中括弧に含まれる規則集合をその対象にします。この規則を利用する事により,一枚のスタイルシート中に複数のメディアタイプに対する規則を記述できます。(cf. @規則)
@media screen {
body { font-size: medium; }
}
@media print {
body { font-size: 10pt; }
}
@media screen, print {
body { line-height: 1.4; }
}
CSSメディアタイプに採用された名称は,関聯のあるプロパティが意味を成す対象デヴァイスを表しています。
CSS2適合では,あるメディアタイプへのサポートを称するUser Agentは,そのメディアタイプに適用される凡てのプロパティを実装しなければならない,とされています。しかしCSS2.1ではそうではありません。CSS2.1では下記リストで示されるメディアタイプの名称は規範的(normative)ですが,その説明については参考情報(infomative)に過ぎません。同様に,各プロパティ定義に示された対象メディアの欄も参考情報です。
以下に示すメディアタイプの名称が定義されています。なお,名称は大文字と小文字を区別しません。
all
screen
tv
handheld
tty
print
projection
braille
embossed
speech
(CSS2では aural
だが非推奨)メディアタイプは,文書をレンダリングする際にUser Agentがひとつのメディアタイプしかサポートできないという意味では相互に排他的です。しかしながら,User Agentは異るカンヴァスに対しては異るメディアタイプを使用するかもしれません。たとえば,ある文書は一方のカンヴァスに対しては 'screen' モードで表示されたり,他方のカンヴァスに対しては 'print' モードで表示されるかもしれません。
多様式(multimodal)のメディアタイプは,単にひとつのメディアタイプに過ぎない点に注意してください。たとえば 'tv' メディアタイプは,単一のカンヴァスに対して視覚的および聴覚的に表現される多様式のメディアタイプです。
@mediaまたは@import規則に未知のメディアタイプを含む場合,それらが指定されていない時と同様に扱われます。
各プロパティ定義には,メディア欄として,そのプロパティがどのメディアタイプに適用されるのか示してあります。しかし,各プロパティは一般に複数のメディアタイプに適用可能なので,一々のメディアタイプではなく,以下で述べるメディアグループを列記してあります。つまり,各プロパティはその定義に列記されたメディアグループについて,それらに内包しているすべてのメディアタイプに適用されることになります。
それぞれのメディアグループは,その特徴からいくつかの性質に分類されています:
以下ではメディアグループの特徴およびそれらに内包するメディアタイプについて述べます。
continuous
(連続メディア)paged
(頁メディア)visual
(視覚メディア)speech
(合成音声メディア)tactile
(触覚メディア)grid
(グリッドメディア)bitmap
(ビットマップメディア)interactive
(対話的メディア)static
(静的メディア)all
(すべてのメディア)下記の表は,メディアグループとメディアタイプの対応関係を示しています。
メディアタイプ | メディアグループ | |||
---|---|---|---|---|
continuous / paged | visual / audio / speech / tactile |
grid / bitmap | interactive / static | |
braille | continuous | tactile | grid | both |
embossed | paged | tactile | grid | both (2.1: staticに改訂) |
handheld | both | visual (audio, speechも含む) | both | both |
paged | visual | bitmap | static | |
projection | paged | visual | bitmap | static (2.1: interactiveに改訂) |
screen | continuous | visual (audioも含む) | bitmap | both |
speech | continuous | speech | 該当なし | both |
tty | continuous | visual | grid | both |
tv | both | visual, audio | bitmap | both |