2011-01-20 18 views
0

水平分割を含むフレームセットを持つWebページで作業しています。左側にはメニュー用のサイドバーとコンテンツ領域があります。 (サファリを含む)のデスクトップブラウザでiOS Safariがビューセットより大きなフレームセットを展開する

<!DOCTYPE html> 
<html> 
<head> 
    <title>Frameset Test</title> 
</head> 

<frameset border="0" cols="100,*"> 
    <frame id="SideMenu" name="SideMenu" src="SideMenu.html" scrolling="no" /> 
    <frame id="MainPage" name="MainPage" src="LongPageContent.html" scrolling="auto" /> 
</frameset> 
</html> 

は、フレームセットをビューポートのサイズに設定され、スクロールバーは、メインページのフレーム内に長いページのコンテンツを表示されます。 iOSのSafariでは、フレームセットはMainPageフレーム内のコンテンツと同じサイズに展開され、可視のビューポートを超えて拡張されます。

MainPageの内容にかかわらず、ページサイズがビューポートと同じになるようにしたいと思います。私はビューポートメタタグを使いこなしましたが、ビューポートを調整してもフレームセットの動作は変更されません。

AppleのiOSガイドラインでは、スクロールがもっと紛らわしい(フレームで2本の指をスクロールする必要がある)ので、フレームセットを避けることが推奨されています。

答えて

2

Safari Webコンテンツガイドには、これは正常な動作であることが記載されています。フレームが拡大されてコンテンツが囲まれ、スクロールできなくなります。

申し訳ありませんが、フレームを捨てなければなりません。

Side Navを各ページにコード化する(ひどい)か、SideMenuの内容を動的に列に読み込む何かをPHPにまとめることができます。

1

AFAIK、<frame>および 2本指スクロールの動作が放棄されました。 iOS 4.Xの要素はコンテンツのサイズに合わせてサイズ変更されるようになりました。

position:fixed;はiOSでも動作しません。サイドメニュフレームをブロックして残りの部分をスクロールさせることはできません。私はこの質問、同じissue.httpとウィッヒ取引を発見http://cubiq.org/iscroll

+1

このライブラリには、興味深い回避策を提供しているようだ//stackoverflow.com/questions/4599153/iframes-and-the-safari - ipad-how-can-the-user-user-scroll-the-content –

関連する問題