Вы можете выровнять изображение по вертикали по центру внутри <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>

Читайте также

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.