JSFiddle - React, Tailwind, and code Playground

HTML

<div class="portfolio-container">
<div class="foto-container">
 <img class="foto-portfolio" src="https://www.w3schools.com/w3css/img_lights.jpg" style="width:100%;max-width:300px">
</div>
<div class="foto-container">
 <img class="foto-portfolio" src="https://www.w3schools.com/howto/img_snow.jpg" style="width:100%;max-width:300px">
</div>
<div class="foto-container">
 <img class="foto-portfolio" src="https://media.gettyimages.com/photos/arch-bridge-in-kromlau-picture-id539121576?s=612x612" style="width:100%;max-width:300px">
</div>
</div>

<div id="myModal" class="modal-portfolio">
  <span class="close">&times;</span>
  <img class="modal-content" id="img">
</div>

CSS

.foto-portfolio {
    border-radius: 5px;
  cursor: pointer;
  transition: 0.3s;
}
.foto-portfolio:hover {
    opacity: 0.7;
    }
.modal-portfolio {
  display: none; 
  position: fixed; 
  z-index: 100; 
  padding-top: 100px; 
  left: 0;
  top: 0;
  width: 100%; 
  height: 100%; 
  overflow: auto; 
  background-color: rgb(0,0,0); 
  background-color: rgba(0,0,0,0.7);
}
.close {
  position: absolute;
  top: 15px;
  right: 35px;
  color: #f1f1f1;
  font-size: 100px;
  font-weight: bold;
  transition: 0.3s; }

JavaScript

var placeImage = document.getElementById('myModal');
var bigImage = document.getElementById("img");
var images = document.querySelectorAll(".foto-portfolio");

images.forEach(img => {
  img.addEventListener('click', () => {
    placeImage.style.display = "block";
    bigImage.src = img.src;
  })
})

var close = document.getElementsByClassName("close")[0];

close.onclick = function() { 
  placeImage.style.display = "none";
}