私は次のHTMLを持っています:
<body>
<div id="page">
<ul id="images">
<li class="image">
<img src="portrait.jpg"/>
</li>
</ul>
<div id="trailing-content">
<p>line 1</p>
<p>line 2</p>
<p>line 3</p>
<p>line 4</p>
<p>line 5</p>
<p>line 6</p>
<p>line 7</p>
<p>line 8</p>
</div>
</div>
</body>
次の CSS を使用します。
body, html{
width:100%;
height:100%;
}
body, div, ul, li{
border:0;
margin:0;
padding:0
}
ul, li{
list-style:none;
}
#page{
width:75%;
height:100%;
margin:0 auto;
}
#images{
position:relative;
width:100%;
height:70%;
overflow:hidden;
}
#images .image{
width:100%;
height:100%;
text-align: center;
}
#images .image img{
max-width:100%;
max-height:100%;
margin:0 auto;
}
ここで意図した結果は、可視画像が特定の時間に画面の高さの最大 70% になることです。このcodepenでわかるように、これはメイン ブラウザーのデスクトップ バージョン (テスト済みの Firefox、Chrome、Safari) で完全に機能します。
しかし、モバイル ブラウザー (具体的には、iOS6 を実行している iPhone 4 の Safari および Chrome Mobile) では、画像が大きく ( overflow:hidden
CSS のルールによってカットされ) たままになり、サイズが適切に制限されません。
iPhone のスクリーンショット:
そして、これが本来の動作をするデスクトップ バージョンです。
#images
奇妙なことに、これは、タグ (この場合は ) に続く後続のコンテンツである場合にのみ発生し#trailing-content
ます。これは、画像がその親の寸法を無視し、実際の iPhone 画面サイズのみを尊重していることを示しています。
アップデート
何が原因なのかはまだわかりませんが、iOS7 が実際に正常に動作していることに気付きました。しかし、ここで iOS6 のサポートを打ち明けるつもりはないので、この質問を報奨金にかけることにしました。