0

空白 (改行を含む) が HTML から取り除かれているため、モバイル デバイスで Web サイトを提供する際に問題が発生しています。
これはinline-block要素の位置をずらすので問題です。(問題の詳細については、こちらを参照してください)。

最終的には回避策に頼りました (最初にインライン ブロック要素間の空白を取り除き、次に CSS の配置を調整しました) が、なぜこれが起こっているのかを理解したいと思います。

ウェブサイトの詳細:

  • プラットフォーム: Ruby On Rails 3.2.11 (MRI 1.9.3)
  • テンプレート エンジン: ERB
  • ラック サーバー: シン (1.5.0)
  • ホスト: Heroku (Cedar)

これが rails/rack/heroku に関連する問題なのかどうかもわからないので、ダミーの複製を作成しました。

  • Rails で生成された HTML を静的*.htmlファイルにコピー (および調整された CSS と JS リンク)
  • そのファイルを別のマシン (Apache) にアップロードして、静的 HTML ファイルとして提供する

そして、いくつかのテストを行いました。うーん...結果は(ほぼ)同じです。
curl で GET リクエストを送信すると、両方の Web サイト (動的 Rails アプリケーションと静的 HTML ファイル) について上記で説明したものが得られます。

  • 固定電話接続を使用して、空白、改行、インデントを含む完全な「生の」HTML を取得します。
  • キャリア 3G 接続を (テザリングで) 使用すると、縮小された CSS や JS のように、HTML コードからすべての空白が取り除かれます。(ちなみに、google.com から xkcd.com まで、他の Web サイトで再確認したときにも同じことが起こりました)

まだ、私のモバイルで閲覧すると、すべてがダミーの静的なもので正常にレンダリングされます。

正直なところ、どこに問題があるのか​​ わかりません。curlは常に3G で縮小された HTML を取得するため、問題はネットワークにあると思います。それでも、スマートフォンはページが Rails によって提供されている場合にのみ文句を言います。

誰もこの問題に遭遇したことがありますか?

4

1 に答える 1

1

ブログのエントリを確認しました。スペースを使用してレイアウトをフォーマットしたり、使用したりすることは間違ったアプローチであり、決して信頼できません。本当に必要な場合は、html で改行しないスペースを使用してください。

 

要素にクラスを配置し、CSS を使用してマージンとパディングを設定する方がはるかに優れています。あなたの回避策は、実際には正しいことでした。

于 2013-02-07T22:31:48.453 に答える