全幅のページにいくつかのオフスクリーンdiv(後で変換で移動する)がありますが、iOSサファリ(実際のデバイス上)はそれをトリミングせず、代わりにスクロール可能な領域を拡張します。
このセットアップ(300x300ボックスを右に-100にナッジ)が実際に動作していることを確認できます(iPadで閲覧すると、デスクトップは正常に機能します):http ://www.eppz.eu/sensitive/offscreen.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<title>Off screen divs</title>
<style type="text/css">
body
{
margin: 0px;
width: 100%;
overflow:hidden; /* Can't crop with this :( */
background: url('tile.png');
}
#offScreen
{
width: 300px;
height: 300px;
margin-left: auto; /* To the right */
position: relative;
right: -100px; /* Nudge offscreen */
background: url('300.png');
}
</style>
</head>
<body>
<div id="offScreen"></div>
</body>
</html>
私はiPadでそれを調べました、体の計算されたスタイルは素晴らしいようです(幅は768pxです):
background-attachment: scroll;
background-clip: border-box;
background-color:
rgba(0, 0, 0, 0);
background-image: url(http://eppz.eu/responsive/tile.png);
background-origin: padding-box;
display: block;
height: 300px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
overflow-x: hidden;
overflow-y: hidden;
width: 768px;
ここでサファリが水平スクロールしないようにするにはどうすればよいですか?私はCSSのみのソリューションを好みますが、マークアップを「散らかす」つもりはあまりありません。