2012-04-14 9 views
0

私のウェブサイトの幅は、iPhone 2G、3G、および4Sのポートレートモードで460pxに設定されています。しかし、水平モードでは良く見えません。私はそれが2倍のピクセルを持つべきだと言います。私はポートレートモードで640x460ピクセルにしたいiPhoneのランドスケープモード(ビューポートメタタグ)でのみウェブサイトの幅を定義するにはどうすればよいですか?

<meta name="viewport" content="user-scalable=yes, width=460" /> 

私の現在のビューポートタグは次のようになります。
ランドスケープモードで800pxが必要です。

これは、Appleのドキュメントであるが、水平モードが言及されていない:https://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html

+0

他のデバイスはどうですか?固定値の代わりにパーセンテージを使用すべきですか? –

+0

あなたのページサイズの制限をCSSスタイルで適用することを検討できれば、私は 'cssでメディアクエリを提案していますが、さまざまなデバイスのさまざまな方向をターゲットとするWebページ開発のために非常に役立つことがあります.... – iDroid

答えて

1

はあなたが一定の「デバイス幅を」使用してみましたか?

http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html

私は、ページがロードされた後にメタタグを変更するには、次の技術をも使用しました。デバイスがポートレートとランドスケープの間で変更された場合、メタタグを変更するためにメタタグを変更する可能性があります。

NSString* js = 
@"var img = document.getElementsByTagName('img')[0];" \ 
"var c = 'width=' + img.width + ', height=' + img.height + ', user-scalable=yes, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0';" \ 
"var h = document.createElement('head'); " \ 
"var m = document.createElement('meta'); " \ 
"m.setAttribute('name', 'viewport'); " \ 
"m.setAttribute('content', c); " \ 
"h.appendChild(m); " \ 
"var html = document.getElementsByTagName('html')[0];" \ 
"var body = document.getElementsByTagName('body')[0];" \ 
"html.insertBefore(h, body); " \ 
""; 
[webView stringByEvaluatingJavaScriptFromString: js ]; 
関連する問題