Чтобы ваш код работал, вам нужно определить ширину каждой карточки , а не просто поле.
Определение отсутствия ширины позволяет div
занимать все доступное пространство в соответствии с ним на уровне блоков, и это то, что происходит с двумя последними картами. Он расширяется всякий раз, когда у него появляется шанс, потому что его детям нужно пространство.
Использование display: flex;
и flex-wrap: wrap;
вместе с определенной шириной карты даст вам нужный результат. Вам, вероятно, нужно установить justify-content
в соответствии с вашими требованиями.
Теперь трудно хранить только четыре (или n) карты подряд, используя flex, учитывая, что отношение размера экрана к размеру карты может варьироваться, но вы можете установить родительский элемент вычисленной ширины для всех карточки, чтобы быть уверенным, что одновременно может быть только 4 ребенка.
Я сделал скрипку здесь для вас, чтобы проверить. Попробуйте развернуть окно результатов и снова запустить, чтобы увидеть, о чем я говорю).
Проверьте здесь для справки.