На предыдущем уроке мы сверстали секцию с портфолио на CSS Grid для десктопа. Осталось сделать верстку адаптивной для различных мобильных устройств и планшетов.

Пример верстки фотогалереи на CSS Grid #2

На предыдущем уроке мы сверстали секцию с портфолио на CSS Grid для десктопа. Осталось сделать верстку адаптивной для различных мобильных устройств и планшетов.

Откроем HTML страницу и перейдем в режим разработчика. Вверху браузера у вас должен быть выбран режим Responsive, с ним мы и будем работать. Начинайте уменьшать ширину экрана и зафиксируйте то значение ширины, для которого нужно вносить изменения в медиа-запросах. При размере меньше, чем 768 пикселей блоки с фотографиями становятся слишком маленькие. Значит на этом размере требуется перестройка макета с колонками.

Изменения на отметке 768px

На разрешении ниже 768px уже разумнее перейти на 3 колонки по одной фракции, вместо четырех. А так же по другому растянуть элементы сетки.

@media only screen and (max-width:768px) {
.portfolio-section {
    grid-template-columns: repeat(3, 1fr);
}
.portfolio-item {
    min-height: 40vh;
    font-size: 16px;
}
.portfolio-item:nth-child(1) {
    grid-column: 2/4;
}
.portfolio-item:nth-child(4) {
    grid-column: 1/3;
    grid-row: initial;
}
.portfolio-item:nth-child(5) {
    grid-column: initial;
    grid-row: initial;
}


Пример верстки фотогалереи на CSS Grid.

Изменения на отметке 480px

Следующие изменения мы сделаем на разрешении 480 пикселей - поставим все элементы в одну колонку друг под другом. Для этого оставим только одну фракцию для portfolio-section, а всем участвующим элементам portfolio-item зададим дефолтные значения. Самый простой способ сбросить любое свойство CSS до его начального значения-это использовать значение initial.

@media only screen and (max-width:480px) {
.portfolio-section {
    grid-template-columns: 1fr;
}
.portfolio-item {
    min-height: 50vh;
}
.portfolio-item:nth-child(1) {
    grid-column: initial;
}
.portfolio-item:nth-child(4) {
    grid-column: initial;
}
.portfolio-item:nth-child(5) {
    grid-column: initial;
}
}


Пример верстки фотогалереи на CSS Grid.

С появлением CSS Grid адаптивную верстку стало делать намного легче по сравнению даже с теми же флексбоксами.