Как отобразить изображение для нескольких устройств?

#html #css

#HTML #css

Вопрос:

У меня есть плавающий баннер, я хочу отображать более 50% ширины больших экранов и 100% ширины маленьких экранов (мобильные устройства).

Изображение иногда очень маленькое (я думаю, на дисплеях retina).

Как я могу улучшить свой код для корректного отображения на дисплеях retina, больших экранах и экранах небольших мобильных устройств?

В .css

 .banner-sticky {
bottom: -2.5px;
left: 0px;
width: 100%;
text-align: center;
background: rgb(0, 0, 0) transparent;
background: rgba(0, 0, 0, 0);
/* filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";*/
}

.advert-img {
width: 50%
height: auto;
}
@media screen and (max-width: 380px) and (orientation: portrait) {
.advert-img {
width: 100%;
}
}
  

В файле .html

 <meta name="viewport" content="width=device-width, initial-scale=1.0">
.
.
.
<div id="sticky" class="banner-sticky" style="position: fixed;">
  <a id="ad-link" href=' #' ><span id="banner-ad"><img src=' foo.jpg' class="advert-img" /></a>
</div>


'<a id="ad-link" href='   this.landingUrl   ' ><span id="banner-ad"><img src='   this.imgSrc   ' class="advert-img" /></a>'
  

Ответ №1:

Вы можете использовать медиа-запросы CSS, чтобы различать ширину экрана, например, так:

 body {
  background: url(foo-small.jpg);
}
@media (min-width: 500px) {
  body {
    background: url(foo-medium.jpg);
  }
}
@media (min-width: 800px) {
  body {
    background: url(foo-large.jpg);
  }
}
  

Чтобы это сработало, вам нужно установить изображение в качестве фона в CSS, а не в качестве <img> тега

Ответ №2:

Попробуйте использовать правило css размера фона для каждого разрешения

 body {
  background: url(foo-small.jpg);
}
@media (min-width: 500px) {
  body {
    background-size:50%;
  }
}
@media (min-width: 800px) {
  body {
    background-size:80%;
  }
}
  

Комментарии:

1. Или, если вы хотите АДАПТИВНОЕ изображение для каждого разрешения, вы должны применить background-size: 100%; если вы используете CSS или если у вас <img src=»…»> img{max-width: 100%;}