Как выровнять картинку по вертикали
Итак, у нас есть картинка и есть блок div. Как выровнять картинку по вертикали?
1. Нам не известны ни размеры картинки, ни размеры блока
Вариант 1. Картинка с абсолютным позиционированием
1 2 3
1 2 3 4 5 6 7 8 9 10 11 12
.outer { height: 100px; position: relative; } .outer img { position: absolute; margin: auto; left: 0; top: 0; bottom: 0; right: 0; }
Height введен только чтобы расширить блок, он может быть динамическим, и картинка всегда будет по центру.
Пример:
Вариант 2. Через table-cell
Верстка как и в первом примере:
1 2 3
1 2 3 4 5 6 7
.outer1 { display: table-cell; vertical-align: middle; text-align: center; width: 500px; height: 100px; }
Здесь тоже высота может быть динамической. Но есть одно НО – ширину блока уже нельзя указать в 100%, должен быть задан width.
Пример:
2. Нам известна высота блока, но не известна высота картинки
Способ через line-height. Высота картинки должна быть меньше высоты блока.
1 2 3
1 2 3 4 5 6 7 8
.outer2 { height: 100px; line-height: 100px; text-align: center; } .outer2 img { vertical-align: middle; }
Пример:
Нам известна высота картинки, но неизвестна высота блока
Способ через абсолютное позиционирование картинки
Суть этого способа заключается в добавлении картинке position: absolute, отодвигании ее сверху на 50% через свойство top, а потом добавлении отрицательного margin, равного половине высоты этой картинки. Также можно выравнивать картинку и по горизонтали (добавлением свойств top: 50% и margin-top, равного половине ширины картинки).
Верстка:
1 2 3 4 5 6 7 8 9 10 11 12
Выровнять картинку по вертикали в CSS
От того, как вы хотите видеть картинку, и здесь будет последствие, чтоб выравнять ее и сделать корректно. При выравнивании картинок или элемента будет располагаться только влево, вправо, а также по центру с текстом, который следует до и после изображения.
Выравнивание оставляет довольно много пустого пространства на вашем сайте. Вы увидите пустое пространство, когда вы пройдете через секцию выравнивания. Для этого нам нужно изображение и блок div, для того, чтоб выровнять картинку по вертикали.
Первое, это нам не известны ни реальные размеры как изображение, так и размеры блока.
Вариант 1. Изображение с абсолютным позиционированием
.kartinku-vertikali <
height: 100px;
position: relative;
>
.kartinku-vertikali img <
position: absolute;
margin: auto;
left: 0;
top: 0;
bottom: 0;
right: 0;
>
Здесь нужно добавить, что Height был поставлен для расширение блока, так как он может быть динамическим, где изображение всегда будет по центру
Пример:1
Вариант 2. Где задействуем table-cell
Верстка идет в аналогичном примере под номер один:
.kartinku-vertikali <
display: table-cell;
vertical-align: middle;
text-align: center;
width: 500px;
height: 100px;
>
В аналогичном порядке высота может быть динамической. Но также здесь присутствует одно НО – это безусловно ширину блока, где уже нельзя указать на 100%, она должна быть задана width.
Пример:1.1
2. Здесь уже известна высота блока, но не известна высота изображения
Здесь пригодится вариант, где все можно исполнить через line-height, где изначальная высота снимка должна быть меньше высоты основного блока.
.vestnav-usotoka <
height: 100px;
line-height: 100px;
text-align: center;
>
.vestnav-usotoka img <
vertical-align: middle;
>
Вот и все, осталось посмотреть пример, как все выглядит.
Пример:2
Также можно посмотреть распространенный способ через абсолютное позиционирование изображения.
Здесь все заключается в прописывание изображение position: absolute, что автоматически происходит отступ ее сверху на 50% через всем известное свойство top, с последствием выставления отрицательного margin, которое автоматически делает равным половине высоты поставленного изображение.
Аналогично можно применить при выравнивать разных картинок в горизонтальном виде, где просто прописываем свойств top: 50% и margin-top, что как уже было сказано, это идет ровно половине ширины изображения.
.polodsen-svuketun <
position: relative;
border: 1px solid #09b3b3;
width: 100%;
height: 100px;
>
.polodsen-svuketun img <
position: absolute;
top: 50%;
left: 50%;
margin-top: -23px;
margin-left: -20px;
>
Это пример посмотрим на demo страницы, чтоб вообще понимать, как правильно выравнивать изображение по вертикали при помощи HTML И CSS.
Свойство CSS обычно используется для поворота и масштабирования элементов, но с его функцией теперь мы можем вертикально выравнивать элементы. Обычно это должно быть сделано с абсолютным позиционированием или установкой высоты строки.
Как выровнять картинки и текст по горизонтали?

Как сделать тоже самое, что представлено на картинке, у меня есть 3 картинки, их надо выровнять по горизонтали в ряд, но у меня выравниваются по вертикали, буду очень благодарен помощи.
- Вопрос задан более трёх лет назад
- 2611 просмотров
1 комментарий
Оценить 1 комментарий
Как выровнять картинку напротив текста?
Мне необходимо выровнять картинку справа относительно текста как в этом макете в section hero https://www.figma.com/file/1YcWoLybECTrHKu18FI2Ee/. . Как это можно сделать?
Soft Point Develop Your Life
With One Step.
Pushing the possibilities of the internet. Good for
the last software. Make it A software night.
  Google Play        Apple Store
body < color:#021206; >.container < width: 100%; max-width: 1200px; margin: 0 auto; >.header < max-width: 100%; position: absolute; top: 0; left: 0; right: 0; z-index: 1000; >.nav < display: grid; grid-template-columns: 1fr min-content 1fr; >.nav__list < display: flex; column-gap: 20px; list-style-type: none; padding-left: 0; align-items: center; >.header__btns < justify-self: end; align-self: center; >.nav__item a < text-decoration: none; color: #021206; font-size: 18px; font-family: 'Poppins', sans-serif; font-weight: 400; >.login < text-decoration: none; color: #021206; font-size: 18px; font-family: 'Poppins', sans-serif; font-weight: 500; margin-right: 5px; >.btn < background-color: #F44545; color: #fff; border-radius: 6px; border:none; padding:15px; font-size: 18px; font-family: 'Poppins', sans-serif; font-weight: 500; margin-right: 5px; >.logo < padding-top: 25px; >.hero < margin-top:60px; >.hero__title < margin:0; font-size: 54px; font-family: 'Poppins', sans-serif; font-weight: 500; >.hero__descr < font-size: 21px; font-family: 'Poppins', sans-serif; font-weight: 400; >.form_group input < width: 100%; height: 65px; border: 2px solid #fff; background-color: #fff; box-shadow: 2px 2px 13px -4px rgba(0, 0, 0, 0.5); >.form_group < position: relative; width: 472px; height: 65px; margin-top:30px; margin-bottom:30px; >.form_group input < width: 100%; height: 50px; border: 2px solid #fff; background-color: #fff; >.btn-send < position: absolute; right: 0; top: 0; width: 120px; height: 40px; border: none; font-size: 21; font-weight: 500; font-family: 'Poppins', sans-serif; color: #fff; background-color: #F44545; border-radius: 6px; margin-top:5px; margin-bottom:5px; >.social__links img < width:30px; height:25px; vertical-align: middle; >.social__links
- Вопрос задан более года назад
- 46 просмотров
Предыдущая запись
