Я пытаюсь создать галерею изображений с помощью CSS, организованную следующим образом:
Я загружаю каждое изображение папки, используя PHP, и создаю элементы, которые я называю строками, содержащими одинаковое количество картинок (в моем случае 4, выровненные по вертикали). Эти ряды выровнены по горизонтали.
Я хотел бы, чтобы эти строки / столбцы корректировали свою ширину до тех пор, пока они не займут все доступное пространство по вертикали, поэтому, если у меня есть 4 вертикальных изображения, строка кажется более тонкой, а если у меня есть 4 изображения в альбомном формате, строка становится шире по горизонтали. Смотрите иллюстрацию:
Прямо сейчас у меня просто что-то вроде этого:
Если строк слишком много, я просто делаю горизонтальную полосу прокрутки вправо.
Мой HTML-код выглядит следующим образом:
<div class="gallery">
<div class="row">
<div class="frame">
<img class="gallery-img">
</div>
<div class="frame">
<img class="gallery-img">
</div>
<div class="frame">
<img class="gallery-img">
</div>
<div class="frame">
<img class="gallery-img">
</div>
</div>
<!-- other rows -->
</div>
И мой CSS следующий:
body {
background-color: #dddddd;
}
.gallery {
width: 100%;
overflow: auto;
height: 100%;
display: flex;
flex-wrap: nowrap;
}
.row {
display: flex;
flex-direction: column;
height: 100%;
flex-wrap: nowrap;
align-content: stretch;
align-items: stretch;
justify-content: space-around;
}
.frame {
margin: 2px;
overflow: hidden;
display: flex;
align-items: center;
align-content: center;
justify-content: center;
box-shadow: inset 5px 5px 40px rgba(0,0,0,0.6);
-webkit-transition: box-shadow;
transition: all 0.5s ease;
}
.frame:hover {
box-shadow: inset 3px 3px 10px rgba(0,0,0,0.6);
}
.gallery-img {
-webkit-transition: transform;
transition: all 0.5s ease;
transform: scale(1);
position: relative;
z-index: -1;
}
.frame:hover .gallery-img {
transform: scale(1.1);
}
Я не знаю, будет ли flex-grow
решением здесь. Я читал о свойствах auto-fit
или auto-fill
, но я не уверен, как и где это использовать. Я надеюсь, что это не было ответа где-то еще, но мне не удалось найти аналогичную тему. Дело в том, что мне нужно сохранять соотношение изображений, а не просто заполнять пустое пространство.
Заранее благодарю за помощь!