2017-05-02 4 views
0

どのようにして、デスクトップクロムとios safari(iframeコンテンツを制御しないと仮定)の両方で適切に動作する、反応性の高いページを含むiframeを持つことができますか?簡単な例を考えてみましょう:ios SafariとデスクトップChromeの両方で垂直方向にスクロールして反応するIframe?

<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <style> 
    html, body, iframe { 
     width: 100%; 
     height: 100%; 
    } 
    </style> 
    </head> 
    <body> 
    <iframe src='https://en.wikivoyage.org/wiki/S%C3%A3o_Paulo/Northeast'></iframe> 
    </body> 
</html> 

これは非常に単純です:でフルおよびフルハイトのiframeがmiscの大規模な、応答性のページで指摘しました。私が見る行動:

  • デスクトップクロム:良い。ウィキアクティビティページはデスクトップサイズでスクロール可能です。
  • iphoneエミュレーションモードのデスクトップクロム:good。ウィキアクティビティページのサイズが変更され、スクロール可能です。
  • 実際のIos Safari(物理電話機とxcode iphoneシミュレータの両方):bad。ウィキボヤージュページが応答し、それは当然のことながら、ページの横オフの方法を伸ばしIFRAME、内部のデスクトップスタイルのページを示していresize-ていません。今すぐ

ios safari behavior without scrollable=no

、私はその最後の問題を修正することができますスタックオーバーフローの質問の数で提案されているようにはiframeにscrolling='no'を追加することによって:

<iframe src='https://en.wikivoyage.org/wiki/S%C3%A3o_Paulo/Northeast' scrolling='no'></iframe> 

これはiphone + iOSシミュレータ上で正しく動作:ウィキボヤージュページがスクロールし、それに応じてサイズを変更しています。しかし、それは予想外に、デスクトップクロムを破ります:ウィキアクティビティのページはそこでは垂直にスクロールできません。それは理にかなっています - 私たちはただスクロールしないように言いました。

私はちょうどthis oneのような関連する質問で何かを見逃している可能性がありますが、受け入れられた解決策はスクロールを壊すばかりのscrolling='no'を使用するように示唆されています。 :(

TLDR:どのように私は縦にスクロール可能ですIFRAMEを取得し、両方のiOS SafariやデスクトップのChromeの応答でき

答えて

0

さてさて、私が作ってみたハックソリューションは、ちょうど2つのiframeを持っているのですか? :scrolling='no'で1つずつのないは、その後、ちょうど携帯に適切なものを示しています。

<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <style> 
     html, body, iframe { 
     width: 100%; 
     height: 100%; 
     } 
     @media (max-device-width: 740px) { 
     .desktop-iframe { display: none; } 
     } 
     @media (min-device-width: 741px) { 
     .iphone-iframe { display: none; } 
     } 
    </style> 
    </head> 
    <body> 
    <iframe class='iphone-iframe' scrolling='no' src='https://en.wikivoyage.org/wiki/S%C3%A3o_Paulo/Northeast'></iframe> 
    <iframe class='desktop-iframe' src='https://en.wikivoyage.org/wiki/S%C3%A3o_Paulo/Northeast'></iframe> 
    </body> 
</html> 

さて、このはIFRAMEのウェブサーバに2つの要求に結果をないことには、いくつかの追加の負荷を誘導し、おそらく遅いでしょう。ページを少し下に。それは、他のオプションのCSSだけのsoulutionよりも良いようだ。

関連する問題