我在全宽页面上有一些屏幕外 div(稍后通过变换移动),但 iOS safari(在实际设备上)只是不裁剪它,而是扩展了可滚动区域。
您可以看到此设置(300x300 框向右轻推 -100)(在 iPad 上浏览,桌面工作正常):http ://www.eppz.eu/responsive/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 上检查过它,计算出来的 body 样式看起来不错(宽度为 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;
如何防止 safari 在这里水平滚动?我更喜欢仅使用 CSS 的解决方案,我并不想“乱扔”标记。