<meta name="viewport" content="width=device-width, initial-scale=1.0">
<h1>Simple gallery pure css</h1>
<div class="container-all">
<div class="container">
  <img src="https://bit.ly/2PvlS8Z" alt="">
   <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
<div class="container">
  <img src="https://bit.ly/2PXNumM" alt="">
  <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
<div class="container">
  <img src="https://bit.ly/2KbUszm" alt="">
   <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
<div class="container">
  <img src="https://bit.ly/2FnhYul" alt="">
   <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
<div class="container">
  <img src="https://bit.ly/2FznWrU" alt="">
   <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
<div class="container">
  <img src="https://bit.ly/2zd3HLf" alt="">
   <span class="title">Lorem ipsum dolor</span>
  <span class="text">Morbi diam viverra mattis sociis magna, habitasse penatibus non lectus</span>
</div>
</div>
@import url('https://fonts.googleapis.com/css?family=Poppins');
body, html{
  margin: 0;
  background: #2b2927;
  font-family: 'Poppins', sans-serif;
}
h1{
  text-align: center;
  color:white;
}
.container-all{
  width: fit-content;
  margin: 20px auto;
  height: auto;
}
.container{
  width: calc(33% - 6px);
  overflow:hidden;
  height: fit-content;
  margin:3px;
  padding: 0;
  display:block;
  position:relative;
  float:left;
}
img{
  width: 100%;
  transition-duration: .3s;
  max-width: 100%;
  display:block;
  overflow:hidden;
  cursor:pointer;
}
.title{
  position:absolute;
  display:block;
  cursor:pointer;
  top: 35%;
  display: none;
  left: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%);
  font-weight: bold;
  font-size: 1.6em;
  text-shadow: 1px 5px 10px black;
  transition-duration: .3s;
}
.text{
  position:absolute;
  top: 70%;
  cursor:pointer;
  max-width: 80%;
  text-align:center;
  left: 50%;
  text-shadow: 1px 5px 10px black;
  font-size: 1em;
  display:none;
  margin-right: -50%;
  transition-duration: .3s;
  transform: translate(-50%, -50%) 
}
.container:hover img{
  transform: scale(1.2);
  transition-duration: .3s;
  filter: grayscale(50%);
  opacity: .7;
}
.container:hover span{
  color:white;
  display: block;
  transition-duration: .3s;
}
@media only screen and (max-width: 900px) {
    .container {
        width: calc(50% - 6px);
    }
}
@media only screen and (max-width: 400px) {
    .container {
        width: 100%;
    }
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.