次のような信頼できるメディア クエリ ルールを探しています。
If desktop width < 720px AND devices in portrait mode {}
(つまり、デスクトップで幅が狭くなると、メディア クエリは 720px で開始されます。携帯電話では、これはポートレート モードの場合にのみ発生します。ランドスケープにはメディア クエリを適用しないでください)。
問題は、デスクトップとは別にデバイスをターゲットにする方法です。
問題が存在する理由:@media handheld
はサポートされていません
追加max-width
で全てに影響するので併用不可max-device-width AND portrait
次のいずれかしかターゲットにできないようです。
- 以下のすべてのデバイス/設定された幅の間
- デバイスのみ (JavaScript shim を使用してメディア クエリを修正) ベロー/設定された幅と向きの間。
デバイスとデスクトップを別々に扱うことはできません。
私のニーズを満たす既存の JavaScript ソリューションはありますか?
CSS を LESS でコーディングしていることに注意してください。メディア クエリはネストされています。
バックグラウンド
私が取り組んでいるサイトはレスポンシブで、グリッド システムを使用しています。720px 幅 (現在のテスト幅) では、小さいデバイス/解像度の列の使用方法が変更されます。ただし、テストしたところ、サイト (幅 720 ピクセルのフル サイト) は、私の小さな画面の HTC Desire でも、横向きで快適に読むことができました。メディア クエリでの使いやすさを向上させるためにサイトの一部を削除しているので、通常はランドスケープでアクセスできるようにしない方がよいと考えました。
要素の列スパンを変更せずにデスクトップで 720px を超えると、サイトがかなり押しつぶされて表示されます。ただし、モバイル デバイスの小さい性質のため、そうは見えません。ただし、列スパンの変更により、特定の要素 (見出しなど) は、携帯電話の横長になると単純に不均衡になります (ブラウザーの高さが大幅に縮小されるため)。
簡単に言えば、私が他のサイトで達成したように、純粋にブラウザーの幅だけでデザインを変更しても、すべてのデバイスに同じように反映されるわけではありません。
次のメタ タグを使用しています。
<meta name="viewport" content="width=device-width,
initial-scale=1,
maximum-scale=1,
user-scalable=no" />
試したこと
デスクトップでは向きは関係ありません。ユーザーウィンドウの設定、解像度などにより変化します。
電話/両方をターゲットにするために、次のことを試しました。
@media handheld and (orientation:portrait) { }
この属性を利用しているように見える電話はありませんhandheld
。少なくとも 100% は利用していないため、価値がありません。
@media screen and (max-device-width:720px) and (orientation:portrait) { }
うまく機能しますが、android 2.2 および 2.3 (他の OS は言うまでもなく、他の可能性もありますか?) には、機能しmax-device-width
ないという問題があります。
@media screen and (max-width:720px) and (orientation:portrait) { }
高解像度モニター (ウィンドウの幅を狭くすると、高さが急速に > 幅になるため) と電話で動作しますが、ウィンドウが 720px 幅で縦向きにならないため、小さなモニターでは動作しません (サイトは私が望む制限を超えて凝縮し続けます)。
@media screen and (max-width:720px), screen and (orientation:portrait) { }
何が何でも最初にやります。役に立たない。
@media screen and (max-width:720px), screen and (max-width:500px) and (orientation:portrait) { }
と
@media screen and (max-width:720px) { }
@media screen and (max-width:500px) and (orientation:portrait) { }
すべてが単純に大きい方を使用しmax-width
ます。
私もmin/max-height
成功せずにいじりました。