Css 背景图像在移动设备上无法正确显示

Posted

技术标签:

【中文标题】Css 背景图像在移动设备上无法正确显示【英文标题】:Css Background Image Not Displaying Correctly On A Mobile Device 【发布时间】:2016-02-18 19:21:42 【问题描述】:
.header 
     background: #15181f url(images/bg-header.jpg) repeat; 
     color: #fff;

.footer 
     background: #15181f url(images/bg-footer.jpg) repeat;
     color: #fff;

大家好,

我的页眉和页脚背景图像无法在 android 或 iPhone 等移动设备上正确显示,iPad 也是如此,页眉和页脚的背景图像无法正确显示,导致背景图像被裁剪。

我尝试了 javascript 和 css,以及一种又一种技术,但没有任何效果。在我的WordPress website www.awebdesign.co.uk 上,这些风格中的任何一种都不是,我不知道我的移动网站有什么用。我试过overflow-x: hidden;,但不想做任何事情。

在下面尝试了这些样式

.header 
     width:100%;
     float:left;
     height:100%;
     display:block;
     position:relative;
     margin: 0 auto !important;
     -webkit-background-size: cover;
     -moz-background-size: cover;
     -o-background-size: cover;
     background-size: cover;
     z-index:10;

我也为页脚添加了以下内容,但后来删除了它,因为它没有任何好处:

footer.footer 
     width:100%;
     float:left;
     height:100%;
     display:block;
     position:relative;
     margin: 0 auto !important;
     -webkit-background-size: cover;
     -moz-background-size: cover;
     -o-background-size: cover;
     background-size: cover;
     z-index:10;

比我实现的媒体查询,

@media only screen and (max-device-width : 480px)
@media only screen and (max-width: 768px)
@media only screen and (max-width: 1024px

后来改成这个了,

@media screen and (max-width: 480px) 
@media screen and (min-width: 768px) and (max-width: 979px) 
@media screen and (min-width: 981px) and (max-width: 1024px)

但是,它仅在左侧显示背景图像的起始位置。它不能在水平线上正确显示,而是垂直显示而不是水平显示。请帮助我找到解决此问题的方法,从而了解如何将 CSS 背景图像属性应用于移动设备和平板电脑(纵向或横向)。

我认为我的问题很清楚,但如果您有任何问题,请随时提出,我希望其他人也觉得这有帮助。提前致谢!

我删除了上面的 CSS 代码以清除我的自定义样式、文档结构、html5 页面和类现在看起来像这样:

<!doctype html>
<html>
<body>
    <header class="header">
        <div class="container">
            <div class="panel_1"></div>
        </div>
    </header>

    <section class="middle">
        <div class="container">
            <div class="full_width"></div>
        </div>

        <div class="clear"></div>           
    </section><!-- .middle -->
    <footer class="footer">
        <div class="container">
          <div class="footer-nav"> 
          </div>      
        </div>        
    </footer>
  </body>
</html>

.container 
    width: 940px;
    margin: 0 auto; 

.container:after 
    content: "";
    display: table;
    clear: both;

.panel_1 background:url(images/panel_0.jpg) left top no-repeat;
          width: 940px;
          height: 270px; /*border: 1px solid #09F;*/

section.middle background: #CCC; clear: both; 

.header 
    background: #15181f url(images/bg-header.jpg) repeat;
    color: #fff;

footer.footer  
    background: #15181f url(images/bg-footer.jpg) repeat;
    color: #fff;

footer.footer padding: 36px 0; clear: both;
.footer-nav float: left;

【问题讨论】:

【参考方案1】:

我认为您将 cover 的值与 contain 混淆了。

包含将使您的图像捕捉到视口的宽度,并且在它们遇到它们所在元素的底部之前不会放大它们。

希望这会有所帮助。 =)

【讨论】:

嗨,Marco,我将值从“cover”更改为“contain”,您现在可以看到它,但它在移动设备上没有任何作用。谢谢。

以上是关于Css 背景图像在移动设备上无法正确显示的主要内容,如果未能解决你的问题,请参考以下文章

背景图像未切换到移动设备上的备用图像

背景:固定没有重复不能在移动设备上工作

css 将行背景图像更改为移动设备的背景颜色

站点背景图像在 PC 上完美运行,但它们不会出现在移动设备上

仅为移动设备加载图像

jQuery toggleClass 在移动设备上无法正常工作