Вы можете выровнять изображение по вертикали по центру внутри <div>
, используя CSS-свойство vertical-align
в сочетании с display: table-cell;
для содержащего элемента div
.
Кроме того, поскольку CSS-свойство margin
не применимо к элементам с display: table-cell;
, поэтому мы обернули содержащий div
другой div.outer-wrapper
и применили к нему margin
. Это решение будет работать даже для изображений с большей высотой, чем содержащие div
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Vertically Center the IMG in a DIV with CSS</title>
<style>
.outer-wrapper{
display: inline-block;
margin: 20px;
}
.frame{
width: 250px;
height: 200px;
border: 1px solid black;
vertical-align: middle;
text-align: center;
display: table-cell;
}
img{
max-width: 100%;
max-height: 100%;
display: block;
margin: 0 auto;
}
</style>
</head>
<body>
<!-- Выравнивание уменьшенного изображения -->
<div class="outer-wrapper">
<div class="frame">
<img src="images/club.jpg" alt="Club Card">
</div>
</div>
<br>
<!-- Выравнивание негабаритного изображения по вертикали -->
<div class="outer-wrapper">
<div class="frame">
<img src="images/kites.jpg" alt="Flying Kites">
</div>
</div>
<br>
<!-- Выравнивание негабаритного изображения по горизонтали -->
<div class="outer-wrapper">
<div class="frame">
<img src="images/sky.jpg" alt="Cloudy Sky">
</div>
</div>
</body>
</html>
Вы также можете использовать метод абсолютного позиционирования для вертикального выравнивания изображения внутри div
.
Давайте посмотрим на пример, чтобы понять, как это работает:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Vertically Align an Image inside a DIV using CSS</title>
<style>
.frame{
width: 250px;
height: 200px;
margin: 20px;
border: 1px solid black;
position: relative;
}
img{
max-height: 100%;
max-width: 100%;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
</style>
</head>
<body>
<!-- Выравнивание уменьшенного изображения -->
<div class="frame">
<img src="images/club.jpg" alt="Club Card">
</div>
<br>
<!-- Выравнивание негабаритного изображения по вертикали -->
<div class="frame">
<img src="images/kites.jpg" alt="Flying Kites">
</div>
<br>
<!-- Выравнивание негабаритного изображения по горизонтали -->
<div class="frame">
<img src="images/sky.jpg" alt="Cloudy Sky">
</div>
</body>
</html>