не будет корректно работать для 20, 30 элемента и тд
да, так не будет. Вам нужно конкретно задавать для каждого элемента. Можно через js.
Можно делать итемы разного размера с использованием ключевого слова span. И задавать им, например, padding на свободную площадь. Тогда будет работать и через nth-child.
Как выглядит ваш дизайн, что ему нужна бесконечная сетка с дырками?
sciencefront, выглядит странно, ну да ладно, проблемы дизайнера.
Мне больше всего, пожалуй, нравится вариант с nth-child, gc через span и margin (левыми для тех у кого пусто слева и правыми для тех у кого справа) (предыдущий с паддингами менее удобный).
Дальше есть разные вариации.
- с aspect-ratio самая простая, там нужный margin можно поставить в auto и нет проблем с шириной при условии, что нет строк с одним item
- писать ширину через calc и margin-left auto
- писать margin через calc