@media規則について。

CSSにおける出力メディア別にプロパティ定義を行う@media規則に関して解説します。

CSSでの@media規則とは。

CSSにおける@media規則とは、特定の出力メディア型に対してのみ有効なプロパティ定義を行うための規則です。

@media規則の書式。

@media規則の書式は、以下のようになります。

@media 出力メディア型 {
    (特定の出力メディア型でのみ有効なプロパティ定義)
    }

このとき、出力メディア型は「,」で区切って複数指定する事も出来ます。

@media規則の記述例。

例えば、携帯電話(出力メディア型handheldまたはtty)でのみ指定したいプロパティ定義については、

@media handheld, tty {
    (携帯電話専用のプロパティ定義)
    }

と記述します。

@media規則に於ける注意事項。

@media規則の実装上の注意。

インターネットエクスプローラでの注意事項。

ネットスケープ 4.xインターネットエクスプローラ4.x及びマッキントッシュ版5.xには@media規則は実装されておりません。

従って、@media規則を活用する事で、これらのユーザエージェントで問題が起こり得るプロパティ定義を回避する事が可能です。

また、インターネットエクスプローラのウィンドウズ版5.xでは、<link>要素でリンクしているスタイルシートに於いて、その<link>要素media属性が与えられている場合は@media規則screen型対応であっても無視します。

オペラ 6.xでの注意事項。

オペラ 6.xでは、<link>要素直接リンクしているスタイルシートに於いて、そのmedia属性で指定されているメディア型を全部含んでいない@media規則は、例え該当するメディアであっても無視されます。

例えば、HTMLで、

<link rel="stylesheet" type="text/css" media="screen, projection " href="style.css" />

と言う形でリンクされている「style.css」において、

@media screen {
    (screen型メディア専用のプロパティ定義)
    }

と記述されている場合、オペラ 6.xではscreen型(フルスクリーンモードで無い状態)でもこの@規則が無視されてしまいます。

  • この不具合を活用して、オペラ 6.xで適用したくないプロパティ定義を回避する事も可能です。
  • 但し、@import規則で取り込んだスタイルシートにはこの不具合は起こらないため、オペラ 6.x弾きには使えません。

WAP 2.0での注意事項。

WAP 2.0では@media規則の実装を必須としておりますが、オープンウェーヴ社のWAP 2.0ブラウザには実装されておりません。


しらぎくのウェブサイト作成入門サイトマップ