JSFiddle - React, Tailwind, and code Playground

HTML

<p>Предсказуемость непредсказуема. Предсказуемость непредсказуема. Предсказуемость непредсказуема. Предсказуемость непредсказуема. Предсказуемость <em data-ref="1">непредсказуема и недоказуема</em>. Предсказуемость непредсказуема. Предсказуемость непредсказуема. Предсказуемость совсем ни разу не  <em data-ref="2, 3, 4">непредсказуема</em>. Предсказуемость непредсказуема. Предсказуемость непредсказуема. Предсказуемость непредсказуема. </p>
    
<p>Однако, здравствуйте.</p>

<figure>
  <figcaption>
    A cute cat
    <span class="subtitle">is in the picture</span>
  </figcaption>
  <img src="http://lorempixel.com/350/250/cats" alt="A cute Kitten">      
</figure>

CSS

body {
  max-width: 500px; padding-left: 80px; padding-right: 20px;
  font-family: 'Times New Roman', Arial, Helvetica, sans-serif;
  font-size: 15px;
}

em:before {
  content:" [" attr(data-ref) "] ";
  font-style: normal;
  color: grey;
  border-bottom: solid 1px white;
  position: absolute;
  left: -60px;
}

em {
  border-bottom: solid 1px yellow;
}

figure, p {
  position: relative;
}

figure {
  max-width: 100%;
  display: inline-block;
}

figcaption {
  box-sizing: border-box;
  background-color: rgba(192, 192, 192, 0.3);
  position: absolute;
  bottom: 0px;
  width: 100%;
  padding: 10px;
  z-index: 1; //Не уверен что это свойство необходимо. 
  font-weight: 300;
  color: white;
  font-size: 24px;
}

.subtitle {
  display: block;
  font-weight: normal;
  font-size: 15px;
}

figure > img {
  display: block;
  box-sizing: border-box;
  max-width: 100%;
}