一部のレスポンシブデザインのテストに使用しているGoogle Nexus 7タブレットを持っています。 JavaScriptでは、screen.width
は、期待どおり(ネイティブ解像度)、800pxとして返されます。
画面の最大幅が720pxを超えると、次のメディアクエリがタブレットによって取得されるのはなぜですか?
@media only screen and (max-width: 720px) and (orientation: portrait) {
.test{ background: red;}
}
Androidは、Androidエコシステムのさまざまな画面密度に対応するために、密度スケーリングをターゲットにしています。Androidブラウザは、デフォルトで中程度の画面密度をターゲットとしており、エミュレートしようとしています画面がMDPI画面であるかのように要素のサイズ。
this website を使用すると、このスケーリングの結果はdevice-width
は601 px
およびdevice-height
は880 px
をNexus 7で。したがって、それはmax-width: 720px
宣言と背景が赤く表示されます。
window.screen.width
および.height
は常に実際の画面サイズを返します。 ビューポートサイズと画面サイズは2つであることを覚えておく必要がありますまったく別のもの。
この動作を望まない場合は、target-densitydpi=device-dpi
から<meta name="viewport">
鬼ごっこ。これにより、Androidターゲット密度スケーリングが無効になります:device-width
およびdevice-height
は、デバイスのネイティブ画面解像度を報告します。
Androidのターゲット密度スケーリングの詳細については、 Android Developers 'Documentation を参照してください。