Как сделать чтоб изображения в grid сетке уменьшались в размерах при сужении?

Ссылка скопирована
5 февраля 2026 1 ответ

Как сделать чтоб изображения в grid сетке уменьшались в размерах при сужении?

Нужно чтоб вот эти элементы галереи уменьшались в размерах пропорционально. Какие свойства можно добавить в код?
HTML

<section class="gallery">         <div class="container">             <div class="gallery__inner">                 <div class="gallery__item gallery__item-1">                     <img src="images/gallery-img-1.png" alt="">                 </div>                 <div class="gallery__item gallery__item-2">                     <img src="images/gallery-img-2.png" alt="">                 </div>                 <div class="gallery__item gallery__item-3">                     <img src="images/gallery-img-3.png" alt="">                 </div>                 <div class="gallery__item gallery__item-4">                     <img src="images/gallery-img-4.png" alt="">                 </div>                 <div class="gallery__item gallery__item-5">                     <img src="images/gallery-img-5.png" alt="">                 </div>                 <div class="gallery__item gallery__item-6">                     <img src="images/gallery-img-6.png" alt="">                 </div>                 <div class="gallery__item gallery__item-7">                     <img src="images/gallery-img-7.png" alt="">                 </div>                 <div class="gallery__item gallery__item-8">                     <img src="images/gallery-img-8.png" alt="">                 </div>                 <div class="gallery__item gallery__item-9">                     <img src="images/gallery-img-9.png" alt="">                 </div>                 <div class="gallery__item gallery__item-10">                     <img src="images/gallery-img-10.png" alt="">                 </div>                 <div class="gallery__item gallery__item-11">                     <img src="images/gallery-img-11.png" alt="">                 </div>                 <div class="gallery__item gallery__item-12">                     <img src="images/gallery-img-12.png" alt="">                 </div>                 <div class="gallery__item gallery__item-13">                     <img src="images/gallery-img-13.png" alt="">                 </div>                                               </div>         </div>     </section>

<section class="gallery"> <div class="container"> <div class="gallery__inner"> <div class="gallery__item gallery__item-1"> <img src="images/gallery-img-1.png" alt=""> </div> <div class="gallery__item gallery__item-2"> <img src="images/gallery-img-2.png" alt=""> </div> <div class="gallery__item gallery__item-3"> <img src="images/gallery-img-3.png" alt=""> </div> <div class="gallery__item gallery__item-4"> <img src="images/gallery-img-4.png" alt=""> </div> <div class="gallery__item gallery__item-5"> <img src="images/gallery-img-5.png" alt=""> </div> <div class="gallery__item gallery__item-6"> <img src="images/gallery-img-6.png" alt=""> </div> <div class="gallery__item gallery__item-7"> <img src="images/gallery-img-7.png" alt=""> </div> <div class="gallery__item gallery__item-8"> <img src="images/gallery-img-8.png" alt=""> </div> <div class="gallery__item gallery__item-9"> <img src="images/gallery-img-9.png" alt=""> </div> <div class="gallery__item gallery__item-10"> <img src="images/gallery-img-10.png" alt=""> </div> <div class="gallery__item gallery__item-11"> <img src="images/gallery-img-11.png" alt=""> </div> <div class="gallery__item gallery__item-12"> <img src="images/gallery-img-12.png" alt=""> </div> <div class="gallery__item gallery__item-13"> <img src="images/gallery-img-13.png" alt=""> </div> </div> </div> </section>

CSS

.gallery__inner {     display: grid;     grid-template-columns: 443px 197px 328px 328px 407px;     grid-template-rows: 408px 141px 188px 196px 252px;     column-gap: 10px; }  .gallery__item img {      }  .gallery__item-1 {     grid-column-start: 1;     grid-row-start: span 2;       }  .gallery__item-2 {     grid-column-start: 2;     grid-row-start: 1;      }  .gallery__item-3 {     grid-column-start: 3;     grid-row-start: 1;      }  .gallery__item-4 {     grid-column-start: 4;     grid-row-start: 1;      }  .gallery__item-5 {     grid-column-start: 5;     grid-row-start: span 2;      }  .gallery__item-6 {     grid-column-start: 1;     grid-row-start: 3;     grid-row-end: 4;     margin-top: 20px;      }  .gallery__item-7 {     grid-column-start: 2;     grid-column-end: 3;     grid-row-start: 2;     grid-row-end: 3;     margin-top: 3px;     margin-left: 20px;      }  .gallery__item-8 {     grid-column-start: 3;     grid-column-end: 4;     grid-row-start: 2;     grid-row-end: 3;     margin-left: 145px;     margin-top: 17px;      }  .gallery__item-9 {     grid-column-start: 5;     grid-row-start: 3;     grid-row-end: 4;     margin-top: 135px;     }  .gallery__item-10 {     grid-column-start: 1;     grid-row-start: 4;     grid-row-end: 5;     margin-top: 143px;      }  .gallery__item-11 {     grid-column-start: 2;     grid-column-end: 3;     grid-row-start: 4;     grid-row-end: 5;     margin-top: 70px;      }  .gallery__item-12 {     grid-column-start: 3;     grid-column-end: 4;     grid-row-start: 4;     grid-row-end: 5;     margin-left: 210px;     margin-top: 25px;      }  .gallery__item-13 {     grid-column-start: 5;     grid-row-start: 4;     grid-row-end: 5;     margin-top: 210px;      }

.gallery__inner { display: grid; grid-template-columns: 443px 197px 328px 328px 407px; grid-template-rows: 408px 141px 188px 196px 252px; column-gap: 10px; } .gallery__item img { } .gallery__item-1 { grid-column-start: 1; grid-row-start: span 2; } .gallery__item-2 { grid-column-start: 2; grid-row-start: 1; } .gallery__item-3 { grid-column-start: 3; grid-row-start: 1; } .gallery__item-4 { grid-column-start: 4; grid-row-start: 1; } .gallery__item-5 { grid-column-start: 5; grid-row-start: span 2; } .gallery__item-6 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 4; margin-top: 20px; } .gallery__item-7 { grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3; margin-top: 3px; margin-left: 20px; } .gallery__item-8 { grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; grid-row-end: 3; margin-left: 145px; margin-top: 17px; } .gallery__item-9 { grid-column-start: 5; grid-row-start: 3; grid-row-end: 4; margin-top: 135px; } .gallery__item-10 { grid-column-start: 1; grid-row-start: 4; grid-row-end: 5; margin-top: 143px; } .gallery__item-11 { grid-column-start: 2; grid-column-end: 3; grid-row-start: 4; grid-row-end: 5; margin-top: 70px; } .gallery__item-12 { grid-column-start: 3; grid-column-end: 4; grid-row-start: 4; grid-row-end: 5; margin-left: 210px; margin-top: 25px; } .gallery__item-13 { grid-column-start: 5; grid-row-start: 4; grid-row-end: 5; margin-top: 210px; }

Дополнительно:

Вместо px использовать fr.
Или другие относительные единицы измерения.

  • Ankhena, но если использовать fr будет уменьшаться сетка, но не изображения. Не влезающие изображения будут создавать нижний скролл. Нужно чтоб картинки уменьшались при сужении ширины экрана.
  • Overlord934,

    Нужно чтоб картинки уменьшались при сужении ширины экрана.

    Ну и что нужно написать, чтобы картинка была по размеру родителя?

  • Ankhena, в теории - прописать ширину 100%
  • Overlord934, в практике аналогично.
    Ещё до кучи есть object-fit, чтобы было совсем хорошо и надежно.
  • Ankhena, не получилось сужение как на этой гифке

    Как сделать чтоб изображения в grid сетке уменьшались в размерах при сужении?

    . По вашей рекомендации изображения сужаются по другому. Вот так

    Как сделать чтоб изображения в grid сетке уменьшались в размерах при сужении?

  • Overlord934,

    Ну давайте поговорим
    1. Я вообще ничего не говорила про высоту.
    2. В демке в вопросе высота не меняется.
    3. В демке как бы из моего ответа меняется (несмотря на п1)

    Нужна фиксированная высота - задавайте фиксированную.

    4. Со строками тоже нужно работать. У вас же каждая картинка занимает одну строку.
    5. Ещё я там говорила про object-fit. Рекомендую всё таки почитать.

    Сначала, перед тем как писать css, нужно разобраться с геометрией и проговорить словами что и как должно себя вести.

  • Ответы:

    ширину грид элементов указывай в fr или % ,
    на картинки делай object-fit: cover

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Максим Павлов Ответ

    Для того чтобы изображения в grid сетке уменьшались в размерах при сужении, можно использовать CSS свойство `max-width: 100%` для изображений.

    Пример использования этого свойства в CSS:

    .grid-container {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-gap: 20px;
    }
     
    .grid-container img {
      max-width: 100%;
      height: auto;
    }

    .grid-container { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 20px; } .grid-container img { max-width: 100%; height: auto; }

    В данном примере мы определяем контейнер сетки с двумя колонками и применяем стиль для изображений внутри этого контейнера. Свойство `max-width: 100%` гарантирует, что изображения не будут выходить за пределы своего контейнера при сужении экрана, сохраняя при этом свои пропорции.

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

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно