Как расположить блоки произвольной высоты в колонки?

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

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

Как расположить блоки произвольной высоты в колонки?

Подскажите, пожалуйста, как это сделать, не прибегая к JS.

P.S.
Забыл добавить, что код блоков выглядит так:

<ul> 	<li> 		<div class="title"></div> 		<div class="description"></div> 	</li> 	<li> 		<div class="title"></div> 		<div class="description"></div> 	</li> 	<li> 		<div class="title"></div> 		<div class="description"></div> 	</li> 	<li> 		<div class="title"></div> 		<div class="description"></div> 	</li> 	<li> 		<div class="title"></div> 		<div class="description"></div> 	</li> </ul>

<ul> <li> <div class="title"></div> <div class="description"></div> </li> <li> <div class="title"></div> <div class="description"></div> </li> <li> <div class="title"></div> <div class="description"></div> </li> <li> <div class="title"></div> <div class="description"></div> </li> <li> <div class="title"></div> <div class="description"></div> </li> </ul>

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

Вы бы их хоть пронумеровали, чтобы было яснее)
Вариантов, в зависимости от нумерации, как минимум четыре:
1. flex
2. grid
3. column-count
4. JS-плагин `Masonry`

  • css columns
  • Ankhena, Спасибо. Пока искал, нашел и подумал — да что там заморачиваться с флексами/гридами. Column просто использую и все.
  • weranda, а флексами или гридами так просто такой результат и не получится
  • google masonry
  • Ответы:

    https://codepen.io/daemonhk/pen/xxaxmBa

    <!DOCTYPE html> <html> <head> 	<meta charset="utf-8"> 	<meta name="viewport" content="width=device-width, initial-scale=1"> 	<title></title> 	<style> 		li{ 			border: 2px solid black; 			display: inline-block; 		} 		ul{ 			display: flex; 		} 	</style> </head> <body> <ul>   <li  style="height: 300px;width: 225px;">     <div class="title"></div>     <div class="description"></div>   </li>   <li  style="height: 400px;width: 225px;">     <div class="title"></div>     <div class="description"></div>   </li>   <li style="height: 450px;width: 225px;">     <div class="title"></div>     <div class="description"></div>   </li>   <li style="height: 500px;width: 225px;">     <div class="title"></div>     <div class="description"></div>   </li>   <li style="height: 300px;width: 225px;">     <div class="title"></div>     <div class="description"></div>   </li> </ul> </body> </html>

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <style> li{ border: 2px solid black; display: inline-block; } ul{ display: flex; } </style> </head> <body> <ul> <li style="height: 300px;width: 225px;"> <div class="title"></div> <div class="description"></div> </li> <li style="height: 400px;width: 225px;"> <div class="title"></div> <div class="description"></div> </li> <li style="height: 450px;width: 225px;"> <div class="title"></div> <div class="description"></div> </li> <li style="height: 500px;width: 225px;"> <div class="title"></div> <div class="description"></div> </li> <li style="height: 300px;width: 225px;"> <div class="title"></div> <div class="description"></div> </li> </ul> </body> </html>

    • dumayu wy tak hoteli sdelat??
    Нужно решить такую задачу?

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

    Заказать помощь
    Лучший ответ
    1
    Елена Вебер Ответ

    Для расположения блоков произвольной высоты в колонки можно воспользоваться CSS свойством `column-count`. Это свойство позволяет разделить контейнер на колонки заданного количества, в которых будут распределяться дочерние элементы.

    Пример использования:

    ```html

    .container {
    column-count: 3; /* задаем количество колонок */
    column-gap: 20px; /* задаем расстояние между колонками */
    }
    .item {
    break-inside: avoid; /* предотвращает разрыв элементов между колонками */
    margin-bottom: 20px; /* задаем отступ снизу для элементов */
    }

    Блок 1
    Блок 2
    Блок 3
    Блок 4
    Блок 5
    Блок 6

    ```

    В данном примере мы создаем контейнер с классом `container` и дочерние элементы с классом `item`. С помощью свойства `column-count` мы разбиваем контейнер на 3 колонки. Свойство `break-inside: avoid` предотвращает разрыв элементов между колонками, а `margin-bottom` задает отступ снизу для каждого элемента.

    Таким образом, блоки произвольной высоты будут распределены в колонки с помощью CSS свойства `column-count`.

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

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

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

    комментарий

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

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