【问题标题】:Media query div background image change weirdness媒体查询 div 背景图片变化怪异
【发布时间】:2015-04-16 23:46:45
【问题描述】:

我有一个带有简单背景图像的 div。我需要更改图像及其显示方式以提高响应能力,但是当我调整浏览器大小时,我看到一些奇怪的行为,封面图像首先不显示或显示为碎片,甚至当我第二次调整大小时如果它只是一个像素变化,它就会开始显示。以任何大小刷新浏览器都可以。知道为什么会发生这种情况以及如何解决吗?

.mydiv {
  background: url(../img/background1.jpg) no-repeat;
  background-position: center center;
}

@media (max-width:992px) {
  .mydiv {
    background: url(../img/background2.jpg) no-repeat;
    background-position: center center;
    background-attachment: fixed;
    background-size: cover;
  }
}

编辑:我注意到当我检查元素并触摸 .mydiv 时,怪异消失了,所以我想知道是否有办法让 Javascript 或 JQuery 刷新我的元素或类似的东西。

【问题讨论】:

    标签: javascript jquery html css media-queries


    【解决方案1】:

    我马上就看到了一些事情:

    1. @media(max-width:992px) 之间添加一个空格
    2. 您使用的是mydiv 元素,还是应该是类名或ID 名?如果它是类或 id,那么您需要在 CSS 中将其称为 .mydiv(类)或 #mydiv(ID)。

    Here's a working jsfiddle.

    【讨论】:

    • 是的,抱歉,这是一堂课,而且有空位。我只是在这里打错了。有趣的是,当我从较低的宽度到较高的宽度时,一切看起来都很好,只有当我从较高的像素到较低的像素或背景需要作为封面时,才会发生奇怪的事情。我需要暂停并再次调整大小才能看到背景正确显示!
    • @user3376065 你在我的 jsfiddle 中看到了同样的行为吗?我没有看到这一点。
    • 没有你的在我的浏览器中是流畅的,那么这里肯定有别的东西在起作用。
    • @user3376065 我假设我在您的帖子中看到的代码更多。您可以包含任何其他相关的样式或标记吗?或者也许尝试慢慢地将它添加到我的代码中,直到找到罪魁祸首?
    【解决方案2】:

    正确重写媒体查询,添加空格,如果您希望更清晰,请使用@media,它本身隐含定义@media all,但您也可以使用参数,但您需要添加

    在这种情况下,我仅出于测试目的使用 768px。用你需要的值更新它。

          @media screen and (max-width: 768px) {
    
          }
    

    演示代码

    html,body{
        height:100%;
    }
    .mydiv {
        width:100%;
        height:100%;
      background: url('http://placehold.it/1000x1000/FFF/000') no-repeat;
      background-size:cover;
      background-position: center center;
    }
    
    @media (max-width: 768px) {
      .mydiv {
        background: url(http://placehold.it/1000x1000/) no-repeat;
        background-position: center center;
      }
    }
    

    查看此演示:

    https://jsfiddle.net/a_incarnati/v575uvyb/5/

    【讨论】:

    • 我尝试更好地编写媒体查询并包括屏幕,但没有帮助。我注意到通过检查元素并简单地触摸 .mydiv 一切都得到修复,并且时髦消失了!我正在更新我的问题,我想知道是否有办法使用 Javascript 或 jQuery 来刷新元素。
    • 当然,我建议你写一个新问题。 :)
    猜你喜欢
    • 1970-01-01
    • 2012-03-19
    • 2013-10-06
    • 2012-12-17
    • 2016-11-30
    • 2022-01-11
    • 2014-08-14
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多