<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Пример верстки блог-секции на CSS Grid #5

Пример верстки блог-секции на CSS Grid #5

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


Пример верстки блог-секции на CSS Grid #5.

HTML разметка

Что мы видим на макете? У нас есть секция с контентом внутри, который не растягивается не весь экран, а имеет фиксированную ширину. Мы помещаем блок с контентом в контейнер, чтобы задать контейнеру максимальную ширину. Контент в секции состоит из трех блоков. Каждый блок представляет из себя превью-картинку, заголовок и текст, одновременоо являясь ссылкой на полную статью.

<section class="section-blog">
 <!-- контейнер -->
  <div class="container">
   <!-- обертка для блоков -->
   <div class="blog-wrap grid">
    <!-- первый блок -->
    <a href="#" class="blog-item grid">
     <span class="blog-item-img" style="background-image: url(img/1.jpg);"></span>
     <span class="blog-item-content grid">
      <h4>Дикие животные</h4>
      <p>текст..</p>
     </span>
    </a>
    <!-- второй блок -->
    <a href="#" class="blog-item grid">
     <span class="blog-item-img" style="background-image: url(img/2.jpg);"></span>
     <span class="blog-item-content grid">
      <h4>Дикие животные</h4>
      <p>текст..</p>
     </span>
    </a>
    <!-- третий блок -->
    <a href="#" class="blog-item grid">
     <span class="blog-item-img" style="background-image: url(img/3.jpg);"></span>
     <span class="blog-item-content grid">
      <h4>Дикие животные</h4>
      <p>текст..</p>
     </span>
    </a>
   </div>
 </div>
</section>

Строим CSS сетку

Для наглядности создадим отдельный класс grid, который будем добавлять к тегам, где нужна grid-технология. Как определить такие теги? Давайте взглянем на разметку первого блока. В тег a вложены два span, а в span с классом blog-item-content вложены заголовок h4 и абзац p. Так вот, те теги, в которые вкладываются другие теги, нужно помечать как гриды. Для них необходимо прописывать display: grid прямо в селектор селектор или через специально созданный класс с данным свойством.

.section-blog {
    padding: 80px 0; / * отступы внутри секции * /
}

.container {
    display: grid;
    max-width: 1200px; / * ширина контента в секции * /
    margin: auto;
    padding: 0 20px;
}

.grid {
    display: grid; / * включение грид-технологии * /
}

Обратите внимание на важный момент: в HTML разметке у нас три блока, но последний блок имеет двойную ширину. Поэтому в шаблоне grid-template-columns мы указываем 4 колонки по одной фракции. Но как получить двойную ширину последнего блока? Для этого обратимся к нему через псевдокласс nth-child и пропишем 3/5. Мы указываем начало и конец ширины блока, блок начинается с третьей линии сетки и заканчивается на пятой линии.

.blog-wrap {
    grid-gap: 20px; / * расстояние между колонками * /
    grid-template-columns: repeat(4, 1fr); / * разбивка на колонки * /
}

.blog-item:nth-child(3) {
    grid-column: 3/5; / * ширина блока * /
}

Внутри блока blog-item есть два элемента: заголовок и текст. Каждый из них занимает по одной фракции, но по вертикали.

.blog-item {
    grid-template-rows: 1fr 1fr; / * разбивка на ряды * /
}

.blog-item-img {
    height: 270px;
    background-size: cover;
    background-position: center;
}

.blog-item-content {
    padding: 25px;
    text-align: center;
    align-content: center;
}

Адаптивная сетка

Суть адаптивной сетки заключается в том, сколько мы оставим фракций в одном ряду. Чем меньше экран, тем меньше будет фракций на один ряд. На отметке 965 пикселей, оставим три равных по ширине фракции.

@media only screen and (max-width:1200px) {
    .blog-home {
        grid-template-columns: repeat(3, 1fr);
    }

    .blog-item:nth-child(3) {
        grid-column: 2/3;
        grid-row: 1;
    }
}


Пример верстки блог-секции на CSS Grid #5.

На отметке 790 пикселей будет уместно оставить две колонки по одной фракции.

@media only screen and (max-width:790px) {
    .blog-home {
        grid-template-columns: repeat(2, 1fr);
    }
}


Пример верстки блог-секции на CSS Grid #5.

На отметке 613 пикселей хорошо будет смотреться одна фракция.

@media only screen and (max-width:613px) {
    .blog-home {
        grid-template-columns: 1fr;
    }
    .blog-item:nth-child(3) {
        grid-column: initial;/ * дефолтное значение * /
    }
}


Пример верстки блог-секции на CSS Grid #5.

Если вы чувствуете, что вам не хватает базовых знаний для лучшего понимания, то посмотрите мой видеокурс "Верстка сайта с нуля 2.0".

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.