Оригінальна публікація: How to Center an Image Vertically and Horizontally with CSS
Багатьом розробникам важко працювати із зображеннями. Надзвичайно важко з адаптивністю та вирівнюванням, особливо посередині сторінки.
У цій публікації я покажу декілька поширених способів вертикального та горизонтального центрування зображення за допомогою різних властивостей CSS.
Горизонтальне центрування зображення
Розпочнемо з горизонтального центрування зображення за допомогою трьох різних властивостей CSS.
Text-Align
Перший спосіб: використати властивість text-align. Однак цей метод працює лише тоді, коли зображення знаходиться всередині контейнера на рівні блоку, наприклад <div>:
<style>
  div {
    text-align: center;
  }
</style>
<div>
  <img src="your-image.jpg">
</div>Margin: Auto
Другий спосіб: використати властивість margin: auto (для лівого та правого полів).
Однак просто використати margin: auto не вийде. Окрім margin: auto потрібно використати ще дві додаткові властивості.
Властивість margin-auto не впливає на рядкові елементи. Оскільки тег <img> є рядковим елементом, спершу потрібно конвертувати його в елемент на рівні блоку:
img {
  margin: auto;
  display: block;
}По-друге, нам потрібно визначити ширину. Таким чином ліве та праве поля можуть зайняти решту порожнього простору та автоматично вирівнятися (якщо ми не задамо ширину 100%):
img {
  width: 60%;
  margin: auto;
  display: block;
}Display: Flex
Третій спосіб: використати display: flex. Так само як ми використали властивість text-align для контейнера, ми використаємо display: flex.
Однак просто використати display: flex не вийде. Контейнер повинен мати додаткову властивість justify-content:
div {
  display: flex;
  justify-content: center;
}
img {
  width: 60%;
}Властивість justify-content працює разом із display: flex, що ми можемо використати для горизонтального центрування.
Зрештою, ширина зображення повинна бути меншою за ширину контейнера. В іншому разі, воно займе 100% простору та ми не зможемо його відцентрувати.
Важливо: властивість display: flex не підтримується на старих версіях браузерів. 
Вертикальне центрування зображення
Display: Flex
display: flex знову буде в нагоді.
Розглянемо випадок, де контейнер має висоту 800px, а висота зображення — лише 500px:
div {
  display: flex;
  justify-content: center;
  height: 800px;
}
img {
  width: 60%;
  height: 500px;
}В такому випадку все вирішує додавання до контейнера одної лінії коду — align-items: center:
div {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 800px;
}Властивість align-items може розставити елементи вертикально, якщо використана разом із display: flex.
Властивості Absolute та Transform
Інший метод для вертикального розташування — використати властивості position та transform разом. Це трішки важко, тому зробимо все покроково.
Крок 1: абсолютна позиція
Спочатку ми змінюємо позиціювання зображення з static на absolute:
div {
  height: 800px;
  position: relative;
  background: red;
}
img {
  width: 80%;
  position: absolute;
}Крім того, воно повинне бути всередині відносно розташованого контейнера, тому ми додаємо position: relative до div контейнера.
Крок 2: верхня та ліва властивості
Потім ми визначаємо верхню і ліву властивості зображення та встановлюємо їх на 50%. Це перемістить початкову точку зображення (верхній лівий кут) до центру контейнера:
img {
  width: 80%;
  position: absolute;
  top: 50%;
  left: 50%;
}Крок 3: трансформація
Другий крок частково перемістив зображення за межі контейнера. Потрібно повернути його всередину.
Потрібно визначити властивість transform та додати -50% до осей X і Y:
img {
  width: 80%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}Існують інші способи горизонтального та вертикального центрування, але я описав найпоширеніші. Надіюсь, ця публікація допомогла вам зрозуміти, як вирівняти зображення посередині сторінки.
Дякую, що прочитали!
 
  
        
         
  
        
        