修复了iOS中部分站点(div)的背景



我想要一个固定位置的背景图像,覆盖整个屏幕,只用于我的网站的一个部分(实际上是两个部分,但独立,所以没有区别)。我在部分的容器DIV上使用这个CSS

#wrapper {
  background-image: url(../img/bg1_IMG_1509.jpg);
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;    
}

(注意:我使用了单独的属性,而不是缩写background,希望它能与更多的设备和浏览器兼容,但事实并非如此。)

这在所有桌面和浏览器中或多或少都能很好地工作,在安卓系统上的一些浏览器中也能,但在iOS中则不然。在iOS中,背景不仅被滚动,而且在垂直方向上被极度拉伸,因此背景图像的高度覆盖了整个DIV,DIV有很多内容,在移动设备上变得相当高,这导致屏幕上或多或少会出现单个像素被放大的情况。因此,fixedcover都不起作用。

我知道/已经阅读了关于iOS固定位置解决方案的答案,该解决方案在<body>标签中使用了DIV,该标签得到了position: fixed和全屏背景图像。但我不希望在整个正文中出现这种情况,而是只在两个(独立的)部分中出现,在这种情况下,无法使用该变通方法。

我发现了这个:

.bg {
    background: url(image.jpg);
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    height: 100%;
    width: 100%;
    position: fixed;
    background-position: center center;
    background-repeat: no-repeat;
}

此处:https://css-tricks.com/forums/topic/full-page-backgrounds-on-ios-background-size-cover/page/3/

基本上,您将背景放在另一个div中,并将固定属性赋予div而不是背景。您需要添加z索引:-1;并添加白色背景或其他任何东西来隐藏你不想看到的图片。

最新更新