iPhone 5 は画面が長く、私の Web サイトのモバイル ビューを捉えることができません。iPhone 5 の新しいレスポンシブ デザイン クエリとは何ですか? 既存の iPhone クエリと組み合わせることができますか?
私の現在のメディアクエリは次のとおりです。
@media only screen and (max-device-width: 480px) {}
iPhone 5 は画面が長く、私の Web サイトのモバイル ビューを捉えることができません。iPhone 5 の新しいレスポンシブ デザイン クエリとは何ですか? 既存の iPhone クエリと組み合わせることができますか?
私の現在のメディアクエリは次のとおりです。
@media only screen and (max-device-width: 480px) {}
もう 1 つの便利なメディア機能は、device-aspect-ratio
.
iPhone 5 には 16:9 の縦横比がないことに注意してください。実際には 40:71 です。
iPhone < 5:
@media screen and (device-aspect-ratio: 2/3) {}
iPhone 5:
@media screen and (device-aspect-ratio: 40/71) {}
iphone 6:
@media screen and (device-aspect-ratio: 375/667) {}
iPhone 6 プラス:
@media screen and (device-aspect-ratio: 16/9) {}
iPad:
@media screen and (device-aspect-ratio: 3/4) {}
これがあります。これは、このブログの功績によるものです。
@media only screen and (min-device-width: 560px) and (max-device-width: 1136px) and (-webkit-min-device-pixel-ratio: 2) {
/* iPhone 5 only */
}
デバイスにインストールされている特定の iOS バージョンではなく、iPhone 5 に反応することに注意してください。
既存のバージョンとマージするには、それらをカンマで区切る必要があります:
@media only screen and (max-device-width: 480px), only screen and (min-device-width: 560px) and (max-device-width: 1136px) and (-webkit-min-device-pixel-ratio: 2) {
/* iPhone only */
}
注意: 上記のコードはテストしていませんが、コンマ区切りの@media
クエリは以前にテストしたことがあり、問題なく動作します。
上記は、Galaxy Nexus など、同様の比率を共有する他のデバイスに影響を与える可能性があることに注意してください。これは、640px の 1 つの寸法 (奇妙なディスプレイ ピクセルの異常により 560px) と 960px (iPhone <5) から 1136px (iPhone 5) の間のいずれかを持つデバイスのみを対象とする追加の方法です。
@media
only screen and (max-device-width: 1136px) and (min-device-width: 960px) and (max-device-height: 640px) and (min-device-height: 560px),
only screen and (max-device-height: 1136px) and (min-device-height: 960px) and (max-device-width: 640px) and (min-device-width: 560px) {
/* iPhone only */
}
上記のすべての回答は、メディアクエリを使用するmax-device-width
かmax-device-height
、メディアクエリに使用するものであり、非常に強力なバグに悩まされています。他の多くの人気のあるモバイルデバイスもターゲットにしています(おそらく不要でテストされていないか、将来的に市場に出回るでしょう)。
このクエリは、画面が小さいすべてのデバイスで機能し、おそらくデザインが壊れます。
同様のデバイス固有のメディアクエリ(HTC、Samsung、IPod、Nexus ...)と組み合わせると、この方法で時限爆弾が発生します。デビッグの場合、このアイデアにより、CSSが制御されていないスパゲッティになる可能性があります。考えられるすべてのデバイスをテストすることはできません。
常にIPhone5のみを対象とする唯一のメディアクエリは、次のとおりであることに注意してください。
/* iPhone 5 Retina regardless of IOS version */
@media (device-height : 568px)
and (device-width : 320px)
and (-webkit-min-device-pixel-ratio: 2)
/* and (orientation : todo: you can add orientation or delete this comment)*/ {
/*IPhone 5 only CSS here*/
}
ここでは、max-widthではなく、正確な幅と高さがチェックされることに注意してください。
さて、解決策は何ですか?考えられるすべてのデバイスで見栄えのするWebページを作成する場合は、劣化を使用することをお勧めします。
/ *画面幅のみを確認している劣化パターン。これは、縦向きから横向きに変わります* /
/*css for desktops here*/
@media (max-device-width: 1024px) {
/*IPad portrait AND netbooks, AND anything with smaller screen*/
/*make the design flexible if possible */
/*Structure your code thinking about all devices that go below*/
}
@media (max-device-width: 640px) {
/*Iphone portrait and smaller*/
}
@media (max-device-width: 540px) {
/*Smaller and smaller...*/
}
@media (max-device-width: 320px) {
/*IPhone portrait and smaller. You can probably stop on 320px*/
}
ウェブサイトの訪問者の30%以上がモバイルから来ている場合は、このスキームを逆さまにして、モバイルファーストのアプローチを提供します。min-device-width
その場合に使用します。これにより、モバイルブラウザのWebページのレンダリングが高速化されます。
私にとって、その仕事をしたクエリは次のとおりでした。
only screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)
iPhone 5 の縦向きと横向き
@media only screen
and (min-device-width : 320px)
and (max-device-width : 568px) {
/* styles*/
}
横向きのiPhone 5
@media only screen
and (min-device-width : 320px)
and (max-device-width : 568px)
and (orientation : landscape) {
/* styles*/
}
縦向きのiPhone 5
@media only screen
and (min-device-width : 320px)
and (max-device-width : 568px)
and (orientation : portrait) {
/* styles*/
}
phonegappアプリをターゲットにした場合、どの応答も機能しません。
次のリンクポイントとして、以下の解決策が機能します。
@media screen and (device-height: 568px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
// css here
}
私はいくつかのオプションをテストしていて、途中でこれを見逃していたので、非常に簡単な追加です. ページに以下があることを確認してください。
<meta name="viewport" content="initial-scale=1.0">
モバイルデバイス用のメディア機能データベースで、iPhone5と他のスマートフォンの答えをかなり簡単に得ることができます。
http://pieroxy.net/blog/2012/10/18/media_features_of_the_most_common_devices.html
同じWebサイトのテストページで独自のデバイス値を取得することもできます。
(免責事項:これは私のウェブサイトです)
afaiknoiPhoneは1.5のピクセル比を使用します
iPhone 3G / 3GS:(-webkit-device-pixel-ratio:1)iPhone 4G / 4GS / 5G:(-webkit-device-pixel-ratio:2)
すべてのiPhoneをキャッチするには、「-webkit-min-device-pixel-ratio」を1.5に下げる必要がありますか?
@media only screen and (max-device-width: 480px), only screen and (min-device-width: 640px) and (max-device-width: 1136px) and (-webkit-min-device-pixel-ratio: 1.5) {
/* iPhone only */
}