出力先に応じてスタイルを変更するには
@media
CSSでは、出力先(メディア)に応じてスタイルを変更することができます。 メディアは、いくつかに分類され、例えばコンピュータのディスプレイは、screenに分類されます。
例えば、コンピュータの画面用と印刷用にスタイルを変えるといったことができます。
メディアの種類
メディアタイプ | 対象 |
---|---|
all | すべてのメディア |
aural,speech | 音声で出力するスクリーンリーダー等。speechは、CSS2.1での将来予約 |
braille | 点字を出力するもの |
embossed | 点字のページを出力するプリンタ |
handheld | 携帯端末 |
印刷プレビューを含む印刷出力 | |
projection | プロジェクタ等 |
screen | コンピュータのスクリーン |
tty | 固定ピッチ文字を使う装置 |
tv | テレビ。低解像度でスクロールに制限のあるデバイスです |
メディアの指定方法
メディアタイプを指定する方法は、3つの方法があります。
- スタイルの定義に@media宣言で指定する。
- 外部ファイルで定義されたCSSとHTMLファイルを関連付ける時に指定する。
- @importでCSSを読み込む時に指定する。
スタイルの定義に@media宣言で指定する。
@media宣言を使うとスタイルシートの定義に複数のメディアタイプのスタイルを定義することができます。
@media print {
body {font-size:10pt}
}
@media screen {
body {font-size:medium}
}
複数のメディアで共通のスタイルを指定する場合、次のようにカンマで区切って指定します。
@media print, screen {
body {font-size:medium}
}
外部ファイルで定義されたCSSとHTMLファイルを関連付ける時に指定する。
HTML文書とCSSが関連付けられる時に指定するには、link要素にmedia属性を指定します。
<link href="layout.css" rel="stylesheet" type="text/css" media="print">
複数のメディアで共通のスタイルを指定する場合、次のようにカンマで区切って指定します。
<link href="layout.css" rel="stylesheet" type="text/css" media="screen,print">
@importでCSSを読み込む時に指定する。
他のスタイルシートから定義を読み込む時に@import宣言を使用します。 この時、メディアタイプを指定することができます。
@import url("layout.css") print;
複数のメディアで共通のスタイルを指定する場合、次のようにカンマで区切って指定します。
@import url("layout.css") screen,print;
メディアグループ
CSSでは、メディアをいくつかのグループに分けて定義しています。
- continuous
- braille, handheld, screen, tty, tv
- paged
- embossed, handheld, print, projection, tv
- visual
- handheld, print, projection, screen, tty, tv
- aural
- aural, tv
- tactile
- braille , embossed
- grid
- braille, embossed, handheld, tty
- bitmap
- handheld, print, projection, screen, tv
- interactive
- aural, braille, handheld, projection, screen, tty, tv
- static
- aural, braille, embossed, handheld, print, screen, tty, tv
- all
- すべてのメディアタイプ