обо всем по порядку. если мы рассмотрим css структуру элементов. а в отношении плавающего свойства left ваш список будет подчиняться алгоритму перестройки браузера.
так что для того, чтобы взять под контроль то, как они будут складываться, вам нужно позиционировать их как абсолютные.
извините, но я не собираюсь писать код для этого, на этот раз ночью, но поделюсь алгоритмической мыслью.
тогда из этого поста вы можете узнать, как обнаружить удаленный элемент. Обнаружение удаленного элемента
после этого, если что-то будет удалено, определить его индекс в стеке будет легко.
тогда вам нужна функция (при условии, что все размеры блоков равны) для обновления левой позиции (css left) каждого элемента, если только его индекс не определяет, что он находится в начале или конце очереди, и в этом случае его css top позиция также требует обновления.
Различение элемента, независимо от того, существует ли он в начале или в конце очереди, следует использовать с помощью его индекса.
таким образом, что если ширина его контейнеров составляет, например, 400 пикселей, тогда он должен содержать 4 поля в каждой строке. поэтому, если новое поле добавляет ширину, которая делает сумму больше, чем количество ящиков, уже существующих в этой строке, больше, чем общая сумма, тогда первый индекс в этой строке находится в начале, и, соответственно, соответствующий для последнего элемента в очереди .