Я бы сказал, использовать display: inline-block
, но они свернутся до новых строк, только если на родительском элементе будет задана ширина.Ваши параметры говорят, что JS может установить ширину родительского элемента, поэтому, если вы хотите рассчитать, какой шириной должен быть прямоугольник, чтобы правильно свернуть строки, то вы можете использовать этот метод.
По сути, каждый дочерний элемент должен быть установлен в inline-block со своей установленной шириной / высотой, и затем вы можете добавить margin-right для каждого, чтобы расположить их отдельно друг от друга, а затем добавить margin-left к родительскому элементу так, чтобы левыйтакже имеет соответствующее расстояние.Затем на основе высоты родителя вычислите, сколько строк может иметь родительский элемент, чтобы вычислить, насколько широким должен быть родитель для правильного сворачивания дочерних элементов (имейте в виду, что не следует включать поле margin-leftродителя по ширине).Все это будет простой CSS, CSS3 не требуется.