ブラウザーが CSS3 メディア クエリをサポートしているかどうかを JavaScript で検出するにはどうすればよいですか?
ブラウザーが CSS3 グラデーションをサポートしているかどうかを JavaScript で検出するにはどうすればよいですか?
ありがとうございました。
ブラウザーが CSS3 メディア クエリをサポートしているかどうかを JavaScript で検出するにはどうすればよいですか?
ブラウザーが CSS3 グラデーションをサポートしているかどうかを JavaScript で検出するにはどうすればよいですか?
ありがとうございました。
Modernizr (メディア クエリをテストできる) を開くと、 window.matchMedia( MDN ページ) 関数が使用されていることがわかります。この関数が存在するかどうかを確認するために、単純な古いバニラ JS をチェックインできます (Modernizr は本当に素晴らしいですが、家ではなくレンガが必要な場合もあります)。
function mediaQueriesSupported()
{
if(typeof window.matchMedia != "undefined" || typeof window.msMatchMedia != "undefined")
{
// alert("media queries are supported!");
return true;
}else{
// alert("no media query support :(");
return false;
}
}
またはよりエレガントに:
function mediaQueriesSupported()
{
return (typeof window.matchMedia != "undefined" || typeof window.msMatchMedia != "undefined");
}
メディア クエリをサポートする次のブラウザーでテストしたところ、すべて正しく true が返されました。
メディア クエリをサポートしていない次のブラウザーでテストしたところ、すべて正しく false が返されました。
勾配サポートの検出に関しては、こことここにいくつかの優れた回答があります。事実上、プロパティを設定して、事後にそれをテストするだけです。ブラウザーは、ジャンクまたはサポートされていない CSS プロパティを破棄します。
編集:
Niet は、勾配検出に関する私の提案と同様に、この問題に対する優れた回答を提供しています。これは純粋な Javascript ではありません (非常に少量の CSS が必要です) が、絶対に簡単な方法です。