私は現在、CSSメディアクエリを使用して、次のようないくつかの中小画面デバイスをターゲットにしています。
@media screen and (min-device-width: 480px) {
...
}
@media screen and (min-device-width: 720px) {
...
}
これは期待どおりに機能し、特定のセレクターにスタイルを適用できますが、..メディアクエリに基づいてセレクターにクラスまたはその他の属性を追加する方法があるかどうか疑問に思いました。
私の考えの例:
@media screen and (min-device-width: 480px) {
body { addClass('body-iphone') }
}
CSSまたはJavaScriptでそれを行う方法はありますか?
チェックアウト Enquire.js 。メディアクエリを処理するための軽量で純粋なJavaScriptライブラリ。かなりクールに見えます。
プレーンCSSでは実行できません。
LESSまたはSASSをご覧ください。これらは、CSSでの作業をより動的かつ柔軟にするように設計されています。
あなたがそれらを使用したら。それらなしでは生きていけません。
特定の解像度で既存のクラスセレクターを本文に追加する場合。
.some-style { background-color:red; }
@media screen and (min-device-width: 480px) {
body {
@extend .some-style;
}
}
JavaScriptソリューション
if (window.matchMedia("(min-device-width: 480px)").matches {
// modify dom
}
conditionizrを見てくださいこれはあなたが探しているものかもしれません http://conditionizr.com/
これも役立ちます Modernizr --svgが有効になっているか、他の機能が有効になっている場合でも検出できます。