Заменить
.scrolling-wrapper .card {
...
flex: 1;
width: 320px;
...
}
на:
.scrolling-wrapper .card {
...
flex: 0 0 320px;
...
}
Посмотреть здесь .
Объяснение : flex: 1; width: 320px;
, в вашем случае, переводится как:
flex-grow: 1; /* I grow if there's available space */
flex-shrink: 1; /* I shrink if there's not enough space */
flex-basis: 0%; /* initial flex-basis (width): 0% */
width: 320px; /* ignored (overwritten by `flex-basis`) */
Вы не хотите, чтобы ваша карта росла, если есть дополнительное пространство:
flex-grow: 0;
Вы не хотите, чтобы ваша картакарта уменьшается в размерах:
flex-shrink: 0;
Вы хотите, чтобы ваша карта начиналась с ширины 320px
flex-basis: 320px;
* 1027 и оставалась на ней * Вам не нужно
width
.
Кроме того, если у вас есть случай, когда карты не заполняют всю ширину контейнера, вы, вероятно, захотите установить
.scrolling-wrapper {
overflow-x: auto;
}
(вместо scroll
), поэтомувы не используете бесполезную полосу прокрутки.
И теперь, когда я ответил на ваш вопрос, мне нужно задать себе один вопрос: почему вы показываете карточки с flexbox?Поскольку flexbox внутри .scrolling-wrapper
не имеет ничего , связанного с flexbox, частью которого он является.
Единственная причина показывать карты с помощью flexbox - если вы хотите, чтобы они распределялись, когда карт недостаточно для заполнения ширины контейнера, с помощью justify-content: space-between;
, но это не так.случай.
Как вы можете видеть, это можно сделать с помощью flexbox, но очень хорошо это можно сделать с display: block; white-space: nowrap;
, как в статье, которую вы связали, , а .scrolling-wrapper
имеет flex-grow: 1
, поэтому он распространяется на все доступное пространство (при условии, что другие дочерние элементы имеют flex-grow: 0
).В настоящее время вы не даете никакой информации о том, что происходит за пределами .scrolling-wrapper
, и я считаю, что именно с этим у вас проблемы.