0

メディアクエリとレスポンシブデザインについてすべて理解して整理したと思ったとき、一部のデバイスで奇妙な動作が見られ、混乱が生じました。

私の意図は、すべての異なるデバイス/解像度をカバーできる一連のメディア クエリを用意することです。いくつかの記事を例を見て実践し始めましたが、Samsung Galaxy SII モバイルでテストすると、期待どおりに動作しないようです。

まず、SII の解像度は 480x800 であると主張されています。この解像度がビデオ再生専用かどうかはわかりませんが、デザインを準備すると、幅 320px に収まるように見えます。

javascript screen.width および screen.height プロパティを使用して、どの解像度で動作しているかを確認しています。結果は次のとおりです。

  • ネイティブ ブラウザでは、ページを縦向きで読み込むと 320x450 の解像度が得られます。ただし、この同じブラウザでページを横向きにリロードすると、533x235 のサイズになります。ここでは、使用する向きに関係なく、同じ高さと幅になると予想されるので、十分に奇妙です。さらに、主張されているデバイスの解像度 480x800 に一致するものはありません。

  • Firefox ブラウザーを使用すると、横向きと縦向きの両方で 480x800 幅の画面プロパティを取得できますが、480px 幅の画像に合わせようとすると、実際には 320px 幅しかないように見えるため、収まりません。

実際、これらすべての場合の実際の解像度は 320x533 のようです。

誰でもこの奇妙な動作について説明がありますか?

それにアプローチし、すべての解決策をカバーするメディアクエリのセットを取得するためのアドバイスはありますか??

編集::::::::::::::

ビューポートで試しました:

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">

それでも成功しません。実際、hexblot によって提供されたリンクの記事によると、「maximum-scale=1」はズームを無効にするべきではありませんが、私のデバイスでは有効です (iOS 用かもしれませんが、わかりません)。次のCSSリンクがあります:

<link rel='stylesheet' type='text/css' media='only screen and (max-width : 320px)' href='".home_url()."/wp-content/themes/twentyeleven/style-xsmall.css'>
<link rel='stylesheet' type='text/css' media='only screen and (min-width : 321px) and (max-width : 479px)' href='".home_url()."/wp-content/themes/twentyeleven/style-small.css'>
<link rel='stylesheet' type='text/css' media='only screen and (min-width : 481px) and (max-width : 767px)' href='".home_url()."/wp-content/themes/twentyeleven/style-medium.css'>
<link rel='stylesheet' type='text/css' media='only screen and (min-width : 768px) and (max-width : 959px)' href='".home_url()."/wp-content/themes/twentyeleven/style-large.css'>
<link rel='stylesheet' type='text/css' media='only screen and (min-width : 960px)' href='".home_url()."/wp-content/themes/twentyeleven/style-xlarge.css'>

デバイスでサイトにアクセスすると、style-xsmall.css (幅 320 ピクセルまで) を使用していることを確認できます。

正直なところ、実際の幅は、縦向きの場合は 320px (少なくとも Web ブラウジングの場合)、横向きの場合は 533px (奇妙なサイズ) のように見えます。

どんな手掛かり?

4

2 に答える 2

2

関連するメタタグを介してビューポートを設定しましたか? そうしないと、ほとんどのモバイル デバイスで画面が自動的にスケーリングされる可能性があります。チェックアウトhttp://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-dont-forget-the-viewport-meta-tag/

于 2013-02-27T16:17:37.323 に答える
0

どうやらこれは、このデバイスでは 1.5 のピクセル密度 (480 が 320 になり、800 が 533 になる) が原因で発生します。同じことが、実際の密度を 2 で割るピクセル密度 = 2 を使用する一部の iOS デバイスでも発生するようです。

このリンクからこの情報を取得しました: http://www.javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml。他の誰かに役立つことを願っています。

したがって、JavaScript の画面プロパティを使用すると、Firefox はデバイスの幅/高さを取得するのに対し、ネイティブの Android ブラウザは「変換された」サイズを取得するようです。

ネイティブブラウザで、デバイスの向きによって異なる解像度が表示される理由はまだわかりません。

そして最後に、いくつかの簡単なテストを行うと (残念ながら、深い結論を得るには十分な時間がありません)、max-device-width と max-width の両方がカバーされたサイズ (320x533) で機能するようです。

それでも、すべてが少し混乱していることを考えると(少なくとも私にとっては)、このすべての機能を処理する方法について他の誰かが関連情報を提供できるとよいでしょう.

于 2013-02-27T17:13:17.867 に答える