html - 网站正文背景在 iPhone Safari 中呈现右白边距

标签 html css mobile-safari iphone

我在这个网站上有一个我在其他任何地方都没有看到的呈现错误。该网站在所有现代浏览器中呈现并验证正常,但我不明白为什么它不显示完整的背景图像(见下面的屏幕截图)。我正在使用 Yahoo CSS Reset,背景图像在正文中声明如下:

background: url("back.jpg") #033049;

您也可以访问网站:http://xaviesteve.com/

enter image description here

enter image description here

如果我需要提供更多详细信息,请告诉我。 感谢您提供任何帮助/提示,​​谢谢。

编辑

我发现很少有人在 Internet 上报告此问题:

  1. 另一个 SO 问题:White space showing up on right side of page when background image should extend full length of page建议申请overflow-x:hidden但它会裁剪网站。

  2. 在 iPad 论坛中:http://www.ipadforums.net/ipad-development/9954-mobile-safari-doenst-show-background-image-when-page-slided-left.html没有回复

解决方案

我一直在调查并尝试不同的方法来解决这个问题,发现将背景图像添加到 <html>标签修复了问题。希望这可以为其他开发者节省一些时间。

之前

body {background:url('images/back.jpg');}

之后

html, body {background:url('images/back.jpg');}

最佳答案

将样式移动到 html 元素可以正常工作,但还有其他方法可以解决此问题。

这里发生的事情是 body 元素最初是根据视口(viewport)调整大小的。如果视口(viewport)只有 X 像素宽,即使包含的内容更宽,您的正文也只有 X 像素宽。要解决此问题,请为您的 body(或任何您附加背景样式的内容)提供基于非百分比的 widthmin-width 以适合您的内容。

通过缩小浏览器窗口并向右滚动,您实际上会在桌面浏览器上遇到同样的问题。这个问题在 iPhone/iPad 上更为明显,因为默认情况下,Mobile Safari 会将视口(viewport)设置为 980 像素,然后缩小直到所有内容都适合屏幕。

我不推荐的替代解决方案是使用以下方法自行设置视口(viewport)宽度,因为它仅适用于 Mobile Safari:

<meta name = "viewport" content = "width = 1080">

更多信息请访问 Apple's Developer Docs .

关于html - 网站正文背景在 iPhone Safari 中呈现右白边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804441/

相关文章:

iphone - 为什么 @contenteditable 不能在 iPhone 上运行?

java - 如何让我的 Web 应用程序在移动设备浏览器上使用不同的样式表呈现?

javascript - iOS Safari 顶部和底部栏问题

html - 我在屏幕底部设置了背景,但当我进入全屏时,下方有一个空白区域。为什么会这样?

javascript - 如何使用 javascript 在网页上替换字母颜色?

html - 问题是将我的页脚 4 列居中对齐

javascript - 当导航栏固定时添加边距

jquery - 如何使用 jquery 从 iframe 内的父页面更改 css 样式

jquery - Html单选按钮选择

html - .NET LinkTagHelper - 如何在没有显式 css 类选择器的情况下将它用于 CSS CDN 文件?