以下は、Adobe docsからのものです。
メディアクエリの仕様には、only
古いブラウザからメディアクエリを非表示にすることを目的としたキーワードも用意されています。と同様not
に、キーワードは宣言の先頭に置く必要があります。例えば:
media="only screen and (min-width: 401px) and (max-width: 600px)"
メディアクエリを認識しないブラウザは、メディアタイプのコンマ区切りのリストを期待します。仕様では、ハイフンではない最初の非英数字の直前で各値を切り捨てる必要があると規定されています。したがって、古いブラウザは前の例を次のように解釈する必要があります。
media="only"
唯一のメディアタイプがないため、スタイルシートは無視されます。同様に、古いブラウザは解釈する必要があります
media="screen and (min-width: 401px) and (max-width: 600px)"
なので
media="screen"
つまり、メディアクエリの意味がわからなくても、すべての画面デバイスにスタイルルールを適用する必要があります。
残念ながら、IE 6–8は仕様を正しく実装できませんでした。
すべての画面デバイスにスタイルを適用する代わりに、スタイルシートを完全に無視します。
この動作にもかかわらず、他のあまり一般的ではないブラウザーからスタイルを非表示にする場合にのみ、メディアクエリの前にプレフィックスを付けることをお勧めします。
したがって、
media="only screen and (min-width: 401px)"
そして
media="screen and (min-width: 401px)"
IE6-8でも同じ効果があります。どちらもこれらのスタイルが使用されないようにします。ただし、それらは引き続きダウンロードされます。
また、CSS3メディアクエリをサポートするブラウザーでは、ビューポートの幅が大きく401px
、メディアタイプが画面の場合、両方のバージョンでスタイルが読み込まれます。
CSS3メディアクエリをサポートしていないブラウザーがonly
バージョンを必要とするかどうか、完全にはわかりません
media="only screen and (min-width: 401px)"
とは対照的に
media="screen and (min-width: 401px)"
として解釈されないようにする
media="screen"
これは、デバイスラボにアクセスできる人にとっては良いテストです。
only
は、下の@hybridの回答を参照してください。彼はそれを非常によく説明しています。