Yes, that's possible with CSS alone.
There are many ways to achieve this but the general idea is to have a parent element for each image (x in your question) containing the image and the caption that you want to appear over the image. You can then use CSS to make the caption overlay and/or transition in to position when hovering.
A quick example would be: (see demo code).
<div class="image-wrapper">
<img src="http://placehold.it/180x120/eeeeee">
<div class="caption">
Your caption text here.
</div>
</div>
<div class="image-wrapper">
<img src="http://placehold.it/180x120/eeeeee">
<div class="caption">
Your caption text here.
</div>
</div>
<div class="image-wrapper">
<img src="http://placehold.it/180x120/eeeeee">
<div class="caption">
Your caption text here.
</div>
</div>
CSS
.image-wrapper {
position: relative;
width: 180px;
float: left;
margin-right: 10px;
}
.image-wrapper:last-child {
margin-right: 0;
}
.image-wrapper .caption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
display: none;
background: rgba(0,0,0, 0.6);
color: #fff;
padding: 0.5rem;
}
.image-wrapper:hover .caption {
display: block;
}