Jump to content
  • 0

Равномерная сетка прямоугольников


7ion
 Share

Question

День добрый.

Есть контейнер, в контейнере блоки. Блоков может быть любое количество. Контейнер может быть любой ширины. Следовательно, количество строк и столбцов заранее неизвестно.

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

Два дня курю как Flexbox, так и гриды, и не вижу решения. Флексы могут оставить на последней строке один элемент, что ужасно некрасиво. Гриды тоже, плюс они его не растягивают. Решения нет, или я его не вижу?

Картинка для наглядности.

63b18a69cc1513a9f0d515e9b0ff82ce.png

Edited by 7ion
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
В 01.08.2017 в 05:27, Xandrito сказал:

что мешает указать минимальную ширину

Указав 20%, вы жестко засунули 5 блоков на строку.

 

В 01.08.2017 в 04:02, Igor Schnaider сказал:

Ну, прийдется вычислять количество и делить пополам.

А вы предполагаете, что строк всегда две :)

 

Блоков может быть любое количество. Ширина блоков одинаковая, за исключением последней строки, определяется шириной самого широкого блока (а его ширина определяется контентом). Контейнер любой ширины. Количество строк и столбцов неизвестно. Высота строк может быть разной.

Похоже, без хардкорной яваскриптовой обвязки я тут не обойдусь.

Link to comment
Share on other sites

  • 0
2 часа назад, 7ion сказал:

А вы предполагаете, что строк всегда две :)

Ну, я не телепат. Вы ведь не уточняли вначале.

Вообще, все равно не очень понятно, как должно работать. По вашим условиям, если у нас, например, два блока — они должны быть оба на одной строке или каждый занимает свою строку (ну раз одинаковое количество на каждой строке, как вы написали)? А если три столбца — по одному на три строки или 2-на-1? А если...

В общем, не понятно ;-)

Link to comment
Share on other sites

  • 0

Если известны минимальная ширина блока и разумные границы диапазона ширины контейнера, можно воспользоваться таким подходом. Но вариантов кода придется написать немало.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy