Задать вопрос

Как сделать так, чтобы между блоками разной высоты не было пустого пространства по вертикали?

Как сделать так, чтобы между блоками разной высоты не было пустого пространства по вертикали? Привожу пример того что нужно, и что у меня получается. Использую float: left , но это не помогает. Может есть какие-нибудь "рецепты" создания подобной структуры.
Так должно быть:
ca931c41e4e14c749db8e6cd4fc10e70.png
А вот так получается:
5f177c9bdee849f98588bc916467b19d.png
  • Вопрос задан
  • 2280 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 3
bootd
@bootd Куратор тега CSS
Гугли и ты откроешь врата знаний!
Сделайте 3 колонки и в них вставляйте эти блоки
Ответ написан
khabaroff
@khabaroff
Digital producer @ Rambler&Co
Может, будет еще полезно
masonry.desandro.com
Ответ написан
delphinpro
@delphinpro Куратор тега CSS
frontend developer
columns-count: 3;
columns-gap: 20px;
для контейнера блоков. сами блоки - inline-block
Плюсы в том, что не нужно рассчитывать количество блоков, как при делении на три столбика и не нужен джаваскрипт, как в случае с масонри
Минус, как всегда, в поддержке браузерами (тут от ТЗ зависит).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@gera7
Из всего что приходит в голову, наиболее разумное это:
Присвоить блокам display:inline-block, а потом блокам которые надо подтянуть вверх присваиваем класс и в нем свойство.
margin-top: - xxx px;
То есть у каждого блока который надо подтянуть вверху будет свой класс, со своим значением для свойства margin-top. В общем придется поиграться немного.
float вообще убрать.

P.S. Возможно сюда заглянет гуру и даст более дельный совет=)
Ответ написан
konnn
@konnn
Front-end developer
У меня была такая ситуация, и я ее решил просто, но сейчас я не дома.
Попробуй после каждого блока поставить пустой div со стилем clear:both
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы