对无法正常工作的图像使用媒体查询

Using media query for an image not working correctly

在我的项目中,我将背景设置为我选择的图像。

代码在这里:

<body>
    <img class="backgroundimg" src="{% static 'spotifywallpaper.jpg' %}" style='position:fixed;top:0px;left:0px;width:100%;height:100%;z-index:-1;'>
</body>

然后我在 css 中使用媒体查询。一般来说,我对这些查询和开发很陌生,所以如果我做错了什么或效率低下,请告诉我。

我的查询基本上是说如果页面宽度为 700 像素或更小,请将图像宽度设置为 100%。对此进行测试时,我的图像没有重新适应页面,而是向内拉伸,对图像造成可怕的影响。

这是我的媒体查询代码:

@media screen and (max-width: 700px) {
    .backgroundimg {
        width: 100%;
    }
}

有人知道为什么这不起作用吗?谢谢你。

更新:

CSS

.mydiv {
  background-image: url('https://wallpaperaccess.com/full/667865.jpg');
  width: 100%;
  height: 100%;
  object-fit:cover;
}

HTML

<div class="mydiv">
    Placeholder
</div>

此代码无法正常工作。我的背景功能与图像标签完全相同,这次是 div.

更新 2: 此代码未按预期将图像的宽度和高度设置为页面的 100%。

HTML

<img class="bgimage"src="{% static 'spotifywallpaper.jpg' %}" alt="">

CSS

.bgimage {
    width: 100%;
    height: 100%;
    object-fit:cover;
}

如果您希望图像在 100% 宽度上拉伸时不难看

你可以使用 object-fit 属性

例如:

img{
    width: //blabla
    height: //blabla
    object-fit:cover;
}

此外,如果您使用媒体查询来更改屏幕宽度,则不应在内联样式中定义宽度和高度,我相信您知道什么是内联样式:d <3

更新: 请注意,object-fit 属性 用于 img 标签,但是如果您打算使用 <img> 标签来设置背景,那么您应该使用 <div> 而不是 background-image:url('/images/someimage.png') 属性 因为 div 有更有效的方法来处理背景图像。 勾选link左边的this,里面有background properties

的列表
  .mydiv {
              background-image: url('https://wallpaperaccess.com/full/667865.jpg');
              width: 100%;
              height: 100%;
              background-size:cover;
            } 

<div class="mydiv">
    Placeholder
</div>

如需了解更多有关 background-size 属性 的信息,请查看 this link

首先,你给了它内联代码,内联代码比外部代码更强大,所以你的媒体查询代码将不起作用

<div id="test" style="width: 100%; height: 100px; background-color: red;"></div>

并且在 css 您提供的文件中

@media screen and (max-width:700px){
  #test {
    background-color: black;
  }
}

所有屏幕尺寸的结果都是红色背景,因为内联代码比外部代码强。 尝试像这样将内联代码传输到 CSS 文件

#test {
  width: 100%; 
  height: 100px; 
  background-color: red;
}
@media screen and (max-width:700px){
  #test {
    background-color: black;
  }
}