0

我在全宽页面上有一些屏幕外 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 的解决方案,我并不想“乱扔”标记。

4

1 回答 1

3

为什么 safari 需要在body之后立即引入另一个包装器,然后一切都按预期工作。就像是:

#view
{
    position:relative;
    top: 0px;
    left: 0px;
    right:0px;
    bottom:0px;
}
于 2013-01-11T13:02:21.637 回答