<div class="container">
<button class="button button1" data-micromodal-trigger="modal-1" aria-label="モーダル1のボタン">
<img class="gallery-img" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-01.jpg" alt="" />
</button>
<button class="button button2" data-micromodal-trigger="modal-2" aria-label="モーダル3のボタン">
<img class="gallery-img" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-02.jpg" alt="" />
</button>
<button class="button button3" data-micromodal-trigger="modal-3" aria-label="モーダル3のボタン">
<img class="gallery-img" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-03.jpg" alt="" />
</button>
<button class="button button4" data-micromodal-trigger="modal-4" aria-label="モーダル4のボタン">
<img class="gallery-img" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-04.jpg" alt="" />
</button>
<button class="button button5" data-micromodal-trigger="modal-5" aria-label="モーダル5のボタン">
<img class="gallery-img" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-05.jpg" alt="" />
</button>
</div>
<div class="modal micromodal-slide" id="modal-1" aria-hidden="true">
<div class="modal__overlay" tabindex="-1" data-micromodal-close>
<div class="modal__container" role="dialog" aria-modal="true">
<img class="gallery-img_lg" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-01.jpg" alt="" data-micromodal-close />
</div>
</div>
</div>
<div class="modal micromodal-slide" id="modal-2" aria-hidden="true">
<div class="modal__overlay" tabindex="-1" data-micromodal-close>
<div class="modal__container" role="dialog" aria-modal="true">
<img class="gallery-img_lg" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-02.jpg" alt="" data-micromodal-close />
</div>
</div>
</div>
<div class="modal micromodal-slide" id="modal-3" aria-hidden="true">
<div class="modal__overlay" tabindex="-1" data-micromodal-close>
<div class="modal__container" role="dialog" aria-modal="true">
<img class="gallery-img_lg" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-03.jpg" alt="" data-micromodal-close />
</div>
</div>
</div>
<div class="modal micromodal-slide" id="modal-4" aria-hidden="true">
<div class="modal__overlay" tabindex="-1" data-micromodal-close>
<div class="modal__container" role="dialog" aria-modal="true">
<img class="gallery-img_lg" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-04.jpg" alt="" data-micromodal-close />
</div>
</div>
</div>
<div class="modal micromodal-slide" id="modal-5" aria-hidden="true">
<div class="modal__overlay" tabindex="-1" data-micromodal-close>
<div class="modal__container" role="dialog" aria-modal="true">
<img class="gallery-img_lg" src="https://pengi-n.co.jp/blog/wp-content/uploads/2024/01/splide-05.jpg" alt="" data-micromodal-close />
</div>
</div>
</div>
* {
box-sizing: border-box;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
cursor: pointer;
}
.container {
width: 100%;
height: 100vh;
display: grid;
grid-template-columns: repeat(7, 1fr);
grid-template-rows: repeat(5, 1fr);
grid-column-gap: 0px;
grid-row-gap: 0px;
}
.button1 {
grid-area: 1 / 1 / 4 / 4;
}
.button2 {
grid-area: 1 / 4 / 3 / 6;
}
.button3 {
grid-area: 1 / 6 / 3 / 8;
}
.button4 {
grid-area: 3 / 4 / 6 / 8;
}
.button5 {
grid-area: 4 / 1 / 6 / 4;
}
.button {
width: auto;
padding: 0;
margin: 0;
background: none;
border: 0;
font-size: 0;
line-height: 0;
overflow: visible;
cursor: pointer;
transition: all 0.2s ease-out;
}
.button:hover {
opacity: 0.8;
}
/**************************\
Basic Modal Styles
\**************************/
.modal {
font-family: system, BlinkMacSystemFont, avenir next, avenir,
helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif;
}
.modal__overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
display: flex;
justify-content: center;
align-items: center;
}
.modal__container {
background-color: #fff;
padding: 30px;
max-width: 400px;
max-height: 100vh;
border-radius: 4px;
overflow-y: auto;
box-sizing: border-box;
}
@media screen and (max-width: 480px) {
.modal__container {
max-width: 300px;
}
}
.modal__content {
margin-top: 2rem;
margin-bottom: 2rem;
line-height: 1.5;
color: rgba(0, 0, 0, 0.8);
}
/**************************\
Demo Animation Style
\**************************/
@keyframes mmfadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes mmfadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes mmslideIn {
from {
transform: translateY(15%);
}
to {
transform: translateY(0);
}
}
@keyframes mmslideOut {
from {
transform: translateY(0);
}
to {
transform: translateY(-10%);
}
}
.micromodal-slide {
display: none;
}
.micromodal-slide.is-open {
display: block;
}
.micromodal-slide[aria-hidden="false"] .modal__overlay {
animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.micromodal-slide[aria-hidden="false"] .modal__container {
animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.micromodal-slide[aria-hidden="true"] .modal__overlay {
animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.micromodal-slide[aria-hidden="true"] .modal__container {
animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
will-change: transform;
}
MicroModal.init({
awaitCloseAnimation: true,
awaitOpenAnimation: true
});
This Pen doesn't use any external CSS resources.