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

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

Похожие посты

Как определить или создать таблицу стилей только для Internet Explorer

Поддержка старых версий IE — головная боль для разработчиков сайтов. В большинстве случаев вы не сможете избежать этого из-за требований проекта или из-за того, что ваш клиент все еще использует старую версию Internet Explorer. Каждая версия IE ведет себя несколько иначе, чем другие. Первое, что нам нужно, это определить отдельные таблицы стилей для разных версий…

Как отключить выделение выделения текста в браузерах с помощью CSS

По умолчанию, когда вы выделяете текст в браузере, он обычно выделяется синим цветом. Но вы можете отключить это выделение с помощью псевдоэлемента CSS ::selection. В настоящее время браузеры поддерживают только небольшое подмножество CSS-свойств для псевдоэлемента ::selection, например color, background-color и text-shadow. Вот пример:

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

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

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

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