Bootstrap делает это:
.modal-dialog {
max-width: 500px;
}
- Элемент
.modal-dialog
является блочным элементом и, таким образом, хочет иметь ширину 100% по умолчанию, но стиль Bootstrap ширина составляет 500 пикселей. - Вы явно устанавливаете изображения шириной 200 пикселей каждое, что (без учета полей на данный момент) составляет всего 400 пикселей.
Два возможных исправления:
1. Переопределите модальный стиль Bootstrap здесь, чтобы ограничить модальное значение более узкой шириной:
/*
The value below is empirically tested,
allows for your given margins & floating. I originally expected it to be
420px = (200px width + 5px left margin + 5px right margin) * 2
but 422px was necessary to avoid wrapping when tested in jsfiddle
*/
.modal-dialog {
max-width: 422px;
}
https://jsfiddle.net/nftj9s7y/1/
Если изображения имеют ширину ровно 200 пикселей, это то, что имеет значение, тогда это ваше решение. Однако это кажется мне хрупким решением - оно сломается, если вы решите изменить ширину изображения, и может не работать при меньших размерах экрана.
Более гибкая решение будет:
2. Используйте flexbox, чтобы изображения расширялись, чтобы заполнить модальный
.gallery {
display: flex;
flex-wrap: wrap;
padding: 5px;
}
/* now that the parent element is display: flex, we don't need floats anymore */
.gallery-item {
padding: 5px;
width: 50%;
}
.gallery-item img {
height: 150px;
object-fit: cover;
width: 100%; /* allow image to fill width of containing element */
}
https://jsfiddle.net/vzs98n6b/2/
И в качестве заключительного замечания, .gallery { overflow-y: auto }
не будет иметь никакого эффекта, если вы не укажете height
или max-height
для этого элемента.