页面中,顶部是一条100%宽的背景,CSS样式如下:
#header {
width:100%;
height: 94px;
background: url(/images/headerbg.gif);
overflow: hidden;
}
发现在iPad下右侧有些部分显示不出来,所以开始调试。
装了Windows版本的Safari测试页面后发现,初始化一个窗体宽度,然后加载页面,等到页面加载完成后再拉动水平滚动条,就会发现顶部右边的背景全变成了白色。
这个明显是Safari对背景的渲染有问题,背景的100%宽度在初始化页面时就被自动转化成固定的宽度值了,因此之后拉动滚动条,不会重新渲染。
StackOverflow上面提供了几种解决方案:
http://stackoverflow.com/questions/2966803/a-way-to-correct-background-scaling-in-ipads-safari
为了简便,我目前采取了最简单的方案,即在 body 中加入 min-width 定义:
body {
line-height: 1;
min-width:1024px;
}