<div class="gallery">
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/1" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/2" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/3" />
</div>
</div>
<div class="gallery__item gallery__item--v-2">
<div class="embed embed--1-2">
<img src="https://source.unsplash.com/collection/582659/4" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/5" />
</div>
</div>
<div class="gallery__item gallery__item--h-2">
<div class="embed embed--2-1">
<img src="https://source.unsplash.com/collection/582659/6" />
</div>
</div>
<div class="gallery__item gallery__item--v-2">
<div class="embed embed--1-2">
<img src="https://source.unsplash.com/collection/582659/7" />
</div>
</div>
<div class="gallery__item gallery__item--h-2">
<div class="embed embed--2-1">
<img src="https://source.unsplash.com/collection/582659/8" />
</div>
</div>
<div class="gallery__item gallery__item--v-2">
<div class="embed embed--1-2">
<img src="https://source.unsplash.com/collection/582659/9" />
</div>
</div>
<div class="gallery__item gallery__item--h-2 gallery__item--v-2">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/10" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/11" />
</div>
</div>
<div class="gallery__item gallery__item--h-2 gallery__item--v-2">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/12" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/13" />
</div>
</div>
<div class="gallery__item gallery__item--h-2 gallery__item--v-3">
<div class="embed embed--2-3">
<img src="https://source.unsplash.com/collection/582659/14" />
</div>
</div>
<div class="gallery__item gallery__item--h-2 gallery__item--v-2">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/15" />
</div>
</div>
<div class="gallery__item gallery__item--v-2">
<div class="embed embed--1-2">
<img src="https://source.unsplash.com/collection/582659/16" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/17" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/18" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/19" />
</div>
</div>
<div class="gallery__item">
<div class="embed">
<img src="https://source.unsplash.com/collection/582659/20" />
</div>
</div>
</div>
* {
box-sizing: border-box;
}
body {
margin: 0;
min-block-size: 100vh;
padding: 5vmin;
}
img {
block-size: auto;
max-inline-size: 100%;
vertical-align: middle;
}
/* Embed */
.embed {
overflow: hidden;
padding-block-start: 100%;
position: relative;
}
.embed--1-2 {
padding-top: calc(100% / (1 / 2));
}
.embed--2-1 {
padding-top: calc(100% / (2 / 1));
}
.embed--2-3 {
padding-top: calc(100% / (2 / 3));
}
.embed > * {
height: 100%;
left: 0;
object-fit: cover;
padding: 0.25em;
position: absolute;
top: 0;
width: 100%;
}
/* Gallery */
.gallery {
display: grid;
grid-template-columns: repeat(8, 1fr);
grid-template-rows: repeat(5, 1fr);
}
.gallery__item--h-2 {
grid-column-end: span 2;
}
.gallery__item--h-3 {
grid-column-end: span 3;
}
.gallery__item--v-2 {
grid-row-end: span 2;
}
.gallery__item--v-3 {
grid-row-end: span 3;
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.