Адаптивная сетка для новостных блоков

Фотографии в блоках имеют одинаковый размер. По причине того, что обычно все добавляют разные по формату картинки — лишнее просто отрезается.

Кнопка "подробнее" всегда находится на одном уровне у всех блоков в строке

Решение основано на css-свойстве display: grid

Пример:

Название новости

Текст статьи или новости

Еще текст статьи или новости

И еще текст статьи или новости, который не умещается на одной строчке

Название новости

Текст статьи или новости

Название новости, которое не умещается в одну строку

Текст статьи или новости

Еще текст статьи или новости

Название новости

Текст статьи или новости

Название новости

Текст статьи или новости

Еще текст статьи или новости

И еще текст статьи или новости

Название новости

Текст статьи или новости

HTML:

CSS:

Стили кнопки "подробнее" взяты из темы: «Оформление кнопок на CSS». При желании можно выбрать другие или использовать свои.

Смотрите также:

Добавить комментарий:

Ваш комментарий отправлен!

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

  • Олег:

    Для таких блоков новостей я искал свойства чтобы grid адаптивно складывался на маленьких экранов и нашел.

    .conteyner {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 350px), 1fr));
      grid-gap: 1rem;
    }
    

    Тут автоматически количество колонок сетки меняется в зависимости от размеров помещающихся элементов. Варьировать надо свойством минимальной ширины (в примере 350px) если делаем минимальную ширину блока маленькую, то в страницу влазит 4 или 5 колонок. Если больше, то 3 или 2 колонки.

    Ответить
    • Олег:

      медиазапросы в таком случае вовсе не нужно прописывать под разную ширину экрана. Код получается компактный и адаптивный.

      Ответить
    • Alexander:

      Спасибо, за замечание, обновил код.

      Ответить
  • Андрей:

    Кстати говоря пример который приведен с css не совпадает. Изначально стоит 4fr который подразумевает 4 колонки.

    Ответить
    • СЕРГЕЙ:

      Прекрасно! Мне как раз надо было 4 в 1 ряд! Это для меня по ходу..!)))

      Ответить
    • СЕРГЕЙ:

      Александр, спасибо! Крутая штука! Всё работает на ура!))

      Ответить
  • Владимир:

    Как ни странно с этого сайта много что юзаю, ставиться легко, а вот эту штуку не могу запилить. Не привязываются свойства. Сам блокнотик ругается, да и в браузере не привязывается. В частности начинается с   grid-template-columns: 1fr 1fr 1fr 1fr; Пишет некорректное значение свойства.

    Ответить
    • Alexander:

      Почему не корректное?

      Ответить
      • Владимир:

        Хммм крутил вертел, не сразу полоски увидел которые копировались из кода css. Начал потихоньку оживлять. Раньше такого не было.

        Ответить
        • Alexander:

          Код выделяется двойным счелчком мыши 🙂

          Ответить
      • Владимир:

        С grid был не очень знаком, довольно интересная вещь. Но в этом примере у меня почему-то дублируется все. Ставишь 1fr 1fr их в оконцовке 4 получается. Если брать пример разметки именно отсюда. Пробовал и чистые новые документы создавать, бесполезно уже как часа 3 репу чешу.

        Ответить
      • Владимир:

        Как и полагалось я тут сам решил наворотить.На div поменять все это и т.д. Не знаю как это работает, проверяю вручную просто никак не получается!!!Копирую отсюда заново спустя какое то время, логику понимаю и т.д. Все развернулось на 3 столбца. Сайт огонь!

        Ответить
        • Alexander:

          Напишите в ТГ или в ВК группу.
          Подсказки бесплатные 🙂

          Ответить
  • Сергей:

    Побольше бы таких вещей. Для похожих новостей самое то.

    Ответить
  • Владислав:

    Спасибо, решение классное, мне как раз "что то" подобное и было нужно.
    Ставлю лайк!!!!

    Ответить