В этой статье расскажу, как наложить и выровнять текст поверх картинки методом CSS. Часто возникает такая необходимость при разработке сайтов. Текст будем выравнивать по центру.

Результат

Разметка HTML

Разметка довольно простая. Тег div служит для оборачивания картинки img и текста span.

<html>
  <body>
    <div>
      <img src="./image/laptop.jpg" alt="Laptop" />
      <span>Уроки по программированию</span>
    </div>
  </body>
</html>

Наложение в CSS

Задаем фиксированные значения ширины и высоты для div. Позиционирование у блока div относительное — это значит, что картинка и текст будут располагаться относительно блока.

Для тега img задаем ширину и высоту на весь размер родительского блока. Позиционирование относительное. Свойство object-fit: cover встроит картинку внутрь div. Если хотите, чтобы края у картинки не обрезались — сделайте размеры div равные размеры картинки img.

div {
  width: 600px;
  height: 500px;
  position: relative;
}

img {
  width: 100%;
  height: 100%;
  position: absolute;
  object-fit: cover;
}

span {
  position: absolute;
  color: #fff;
  background-color: blue;
  font-size: 22px;
  padding: 10px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Для текста также задаем абсолютное позиционирование. Свойства top, left, и transform отвечают за выравнивание. В коде мы выравниваем текст по центру.

Если необходимо выровнять по другому, тогда уберите свойство transofrm и задайте:

  1. top: 0, left: 0 — левый верхний край
  2. top: 0, right: 0 — правый верхний край
  3. bottom: 0, left:  0 — левый нижний край
  4. bottom: 0, right: 0 — правый нижний край

Вместо нолей можно задавать значения в пикселях. Например top: 50px — отступит от верхнего края 50 пикселей.


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85