【问题标题】:CSS Background Image center is not the same as margin:0 auto with scrollbarsCSS背景图像中心与margin:0 auto与滚动条不同
【发布时间】:2011-06-01 09:53:20
【问题描述】:

看看http://jsfiddle.net/7zb6P/1/

黄色框和背景图片都在滚动的div 中居中,尽管它们的中心略有不同。这似乎是由于背景居中于整个区域(包括滚动条),但 div 居中于内容区域(不包括滚动条) - 看到它在没有滚动条的情况下正确居中 http://jsfiddle.net/7zb6P/2/

有趣的是,IE7 会“正确”呈现它,但 IE8+ 和其他浏览器会按上述方式呈现它。

我玩过 background-origin(和 -webkit-background-origin),但似乎没有任何属性有任何效果。

关于如何解决这个问题的任何想法?

编辑:更多信息:链接的小提琴只是问题的一个最小示例,我的实际问题是整个站点居中(margin:0 auto)并且背景图像居中(使用background-position: center top)。该解决方案需要在我无法更改 HTML 的大量网站上运行,因此它需要是基于 CSS(或可能基于 Javascript)的解决方案。谢谢。

【问题讨论】:

  • 谢谢 Max,遗憾的是这并没有解决问题。由于我链接的小提琴只是一个演示,真正的问题在于 body 元素以背景图像为中心时。我无法修改网站的 HTML(所以要放入包装器或其他任何东西),所以这个解决方案必须单独使用 CSS(或可能是 Javascript)。

标签: html css


【解决方案1】:

问题在于您的背景图片。您正在尝试使(出于 CSS 目的)没有中心的图像居中。

图像宽 321 像素。这意味着图像的中心是 161.5 像素。由于浏览器无法渲染该位置,它会获得 1 个像素的偏移量。

【讨论】:

  • 您好,虽然这是真的,但这不是根本问题。背景图像偏离了超过 1px,大约偏离了 10px。
  • 啊..好的。我没有注意到。对此感到抱歉。
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 2011-11-04
  • 2012-02-05
  • 1970-01-01
  • 2012-05-06
相关资源
最近更新 更多