0

プログレッシブ エンハンスメントを備えたモバイル ファーストの Web サイトを作成しているので、小さい/モバイル画面 (704px 以下) のレイアウトを処理する base.css ファイルと、デスクトップ/タブレット画面のレイアウトを処理する full.css ファイルをセットアップしました。 .

これは私がファイルをリンクする方法です

<link rel="stylesheet" href="css/base.css?v=1.67" media="screen, handheld">
<link rel="stylesheet" href="css/full.css?v=1.7" media="screen and (min-width:44em)">

(44em は 16px の「ベース」フォント サイズに基づいて 704px ですが、この問題のデバッグの一環として、代わりに絶対ピクセル値を使用し、大きな値を静かにして無駄にしました。問題について言えば...)

問題は、nexus 4 デバイスが full.css ファイルをダウンロードすることです。USBデバッグを使用してセットアップし、wiresharkを使用して確認したChromeインスペクターに表示されます。コンソールにいくつかの警告も出力されるため、full.css は確実に処理されています。

上記のように、大きなピクセル値 (1980px) を使用してみましたが、電話はまだファイルをダウンロードしています。本当に奇妙な部分は、レイアウトがfull.css が使用されているように見えないことです。実際、メディアクエリを削除して「適切に」ロードすると、レイアウトが台無しになります。したがって、基本的にサイトは正しく動作しますが、full.css をダウンロードするために帯域幅がまだ使用されています。サイトを可能な限り最適化したいので、これは理想的ではありません。

これは chrome for android の既知の問題ですか? 解決策はありますか (サーバーでブラウザー/解像度の検出を行う以外に)?

4

2 に答える 2

0

「モバイル ファースト」のスタイルシートを作成できます。通常、デフォルトでデスクトップに設定されたメディア クエリを使用してスタイルシートを作成し、次にタブレットに縮小してからモバイル デバイスに縮小します。

「モバイル ファースト」アプローチはその逆です。デフォルトのスタイルは、モバイル デバイスでの外観を決定し、次にタブレット、デスクトップの順に移動します。

この背後にある考え方は、タブレットとデスクトップの CSS がモバイル デバイスに読み込まれず、スタイルが既にモバイルに最適化されているということです。

私は記事を読んでいませんが、詳細については、このようなことを試してみてください。

http://www.html5rocks.com/en/mobile/responsivedesign/

于 2013-09-12T16:41:27.167 に答える
0

CSSOM は現在、含まれているがダウンロードされていないスタイルシートを管理する方法がないため、ブラウザーはすべてのスタイルシートをダウンロードします (これは、将来、属性を介して対処される可能性があります)。

ただし、ブラウザーはスタイルシートがダウンロードされる順序に自由に優先順位を付けることができます。iOS Safari のこのウォーターフォール ( http://www.webpagetest.org/result/130912_9Z_7d0e1737392e338ea206af78bd615c89/ ) を見ると、より大きな画面のダウンロードが表示されます。スタイルシートは、ウォーターフォールの後半まで延期されます。

通常、MQ を含むスタイルシートにすべてのスタイルシートをマージすることをお勧めします。これらのスタイルシートには、GZIP で適切に圧縮される非常に反復的なテキストが含まれているためです。(ただし、これを実行したいシナリオがいくつかあります)

于 2013-09-12T18:30:07.747 に答える