html - 响应图像 - 不同屏幕尺寸上的不同图像

标签 html css background-image responsive

您好社区,在此先感谢您的帮助。 我的问题如下,我想在计算机屏幕上显示一些图像,但在移动设备上将这些图像切换为仅一个合成图像。这是我的代码:

@media screen and (max-width:480px) {
    .hidden_mobile {
        display:none;
        background-image: url("http://julienleveau.com/wp-content/uploads/2018/04/Mobile-version.jpg");
 	background-repeat: no-repeat;
	background-size: contain;
    }
}
<div class="col-sm-1">
</div>
<div class="col-sm-2">
<img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/top100.jpg" style="display: block; width: 100%; height: auto; margin: 0 auto 15px" alt="">
</div>
<div class="col-sm-2">
<img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/WW-1.jpg" style="display: block; width: 100%; height: auto; margin: 0 auto 15px" alt="">
</div>
<div class="col-sm-2">
<img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/fearless.jpg" style="display: block; width: 100%; height: auto; margin: 0 auto 15px" alt="">
</div>
<div class="col-sm-2">
<img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/bowp-300-1.jpg" style="display: block; width: 100%; height: auto; margin: 0 auto 15px" alt="">
</div>
<div class="col-sm-2">
<img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/ispwp.jpg" style="display: block; width: 100%; height: auto; margin: 0 auto 15px" alt="">
</div>
</div>
<div class="col-sm-1">
</div>

到目前为止,它可以在计算机上运行,​​但在移动设备上则不行。它只是将图像显示在彼此之上。

谢谢

最佳答案

这里有两个问题:

1) 您试图在移动设备中隐藏的元素有一个内联 display:block 覆盖样式表中的 display:none。这就是为什么您一直在移动设备中看到图像的原因。在下面的运行片段中,我删除了所有内联样式,并将边距移动到样式表中的一个类。 您可以在此处阅读有关 CSS 规则特异性的更多信息:https://www.smashingmagazine.com/2007/07/css-specificity-things-you-should-know/

2) 即使您删除了内联样式,您也不会看到您想要的背景图像,因为您将它添加到具有 display:none 的元素中。您需要将该背景图像添加到我在类 .mobile_only 中创建的另一个元素。

通过在下面的代码片段中应用这 2 个更改,您可以根据屏幕的分辨率看到不同的图像。

.hidden_mobile {
height: auto; width: 100%; margin: 0 auto 15px; 
}
@media screen and (max-width:480px) {
  .hidden_mobile {
    display: none;
  }
  .mobile_only {
    height: 250px;
    background-image: url("http://julienleveau.com/wp-content/uploads/2018/04/Mobile-version.jpg");
    background-repeat: no-repeat;
    background-size: contain;
  }
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="row">
<div class="col-sm-1">
</div>
<div class="col-sm-2">
  <img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/top100.jpg" alt="">
</div>
<div class="col-sm-2">
  <img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/WW-1.jpg" alt="">
</div>
<div class="col-sm-2">
  <img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/fearless.jpg" alt="">
</div>
<div class="col-sm-2">
  <img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/bowp-300-1.jpg" alt="">
</div>
<div class="col-sm-2">
  <img class="hidden_mobile" src="http://julienleveau.com/wp-content/uploads/2018/04/ispwp.jpg" alt="">
</div>
</div>
<div class="col-sm-1">
</div>
   <div class="mobile_only"></div>
</div>

关于html - 响应图像 - 不同屏幕尺寸上的不同图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49945835/

相关文章:

javascript - Bootstrap 下拉数据切换未在复杂的导航设置中显示

CSS:相对定位和滚动内部元素

css - 如何有效地 float 图像或背景图像

html - 自动换行 : break-word not working in <small> or any other element

带有顶部和底部填充的 css 拉伸(stretch)背景图像

html - 背景图像显示图像的特定部分

html - 多行文字不垂直居中

html - 下拉菜单中工具提示的CSS

javascript - 如何得到一个currentScript的属性?

css - 什么是 flex 中的 Css "display:none"?