iOS Chrome 中不显示背景图片

Background image doesn't show in iOS Chrome

我 运行 遇到了一个奇怪的问题:我页面上 div 的背景图片在我电脑的网络浏览器上工作正常,在 Safari 上工作正常 iOS,但 iOS 的最新版本 Chrome (v46) 不显示图像:

http://winstoncb.com/wp-content/themes/gridsby/test/test2.html

进一步观察:

@media screen and (max-width: 500px) {
  div#hero {
    max-height: 400px;
    background: url('http://winstoncb.com/wp-content/themes/gridsby/images/WCB-rectangle2-low-mobile.jpg') no-repeat;
  }
}

@media screen and (max-width: 400px) {
  div#hero {
    background: url('http://winstoncb.com/wp-content/themes/gridsby/images/WCB-rectangle2-low-mobile.jpg') no-repeat;
    background-position: 37% top;
    max-height: 400px;
  }
}

/* HERO IMAGE */
div#hero {
  display: block;
  width: 100%;
  height: 500px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1500px;
  background: url('http://winstoncb.com/wp-content/themes/gridsby/images/WCB-rectangle2-low.jpg') no-repeat;
  background-size: cover;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-position: 37% top;
}
}
<div id="hero"></div>

这似乎是很多人都会遇到的问题,但我没有看到太多关于它的帖子。如果您能指出正确的方向,非常感谢。

温斯顿

试试这个

background: transparent url("http:your url/images/page-menu-background.png") no-repeat scroll 0% 0% / cover;

我已经玩了一会儿,iOS 上的 Chrome 似乎在缩放大图像方面有问题。您编写 CSS 的方式导致 Chrome 试图显示 image in original size 4097x2356px, not the mobile version.

当我更新 CSS 以便 Chrome 在 iOS 上加载较小尺寸的图像时,一切正常。

此外,请确保将媒体查询放在基本样式之后。

已更新CSS:

/* HERO IMAGE */
div#hero {
  display: block;
  width: 100%;
  max-width: 1500px;
  height: 500px;

  margin-left: auto;
  margin-right: auto;

  background: url('http://winstoncb.com/wp-content/themes/gridsby/images/WCB-rectangle2-low.jpg') no-repeat;

  background-size: cover;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;

  background-position: 37% top;
}

/*
  max-device-width set to 1024px means that it will be used for all iPads and
  iPhones, including iPhone 6s plus
  @see http://stephen.io/mediaqueries/
*/
@media screen and (max-device-width: 1024px) {
  div#hero {
    background-image: url('http://winstoncb.com/wp-content/themes/gridsby/images/WCB-rectangle2-low-mobile.jpg');
  }
}

谢谢@Jan Vlcek,你的回答让我走上了正确的道路。经过更多的实验,我意识到这里有一些关键的部分:

我以前没有的最重要的事情是我脑海中的以下元标记:

没有这个,移动媒体标签就没有效果。

其次,为了解决主要问题——图像没有出现在我的 iPhone6 上——使用 max-device-width 而不是像你建议的那样 max-width

以下是一些可能有所帮助的其他事情:

1) 在基本样式之后放置媒体查询。

2) 在媒体查询中使用 (-webkit-min-device-pixel-ratio: 2)