WEB 教程
实践 示例
HTML 参考手册
CSS 参考手册
PHP 参考手册

如何使用 CSS 在 DIV 中垂直对齐图像

主题:HTML / CSS上一页|下一页

答案:使用 CSS vertical-align 属性

您可以将 CSS vertical-align 属性与包含 div 元素的 display: table-cell; 结合使用,在 <div> 内垂直居中对齐图像。

此外,由于 CSS margin 属性不适用于 display: table-cell; 元素,所以我们用另一个 DIV (.outer-wrapper) 包裹了包含 DIV 并在其上应用了边距。 此解决方案甚至适用于高度大于包含 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>
    <!-- Alignment of undersized image -->
    <div class="outer-wrapper">
        <div class="frame">
            <img src="images/club.jpg" alt="Club Card">
        </div>
    </div>
    <br>
    <!-- Alignment of vertically oversized image -->
    <div class="outer-wrapper">
        <div class="frame">
            <img src="images/kites.jpg" alt="Flying Kites">
        </div>
    </div>
    <br>
    <!-- Alignment of horizontally oversized image -->
    <div class="outer-wrapper">
        <div class="frame">
            <img src="images/sky.jpg" alt="Cloudy Sky">
        </div>
    </div>
</body>
</html>

您还可以使用 CSS 定位方法 在 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>
    <!-- Alignment of undersized image -->
    <div class="frame">
        <img src="images/club.jpg" alt="Club Card">
    </div>
    <br>
    <!-- Alignment of vertically oversized image -->
    <div class="frame">
        <img src="images/kites.jpg" alt="Flying Kites">
    </div>
    <br>
    <!-- Alignment of horizontally oversized image -->
    <div class="frame">
        <img src="images/sky.jpg" alt="Cloudy Sky">
    </div>
</body>
</html>

FAQ 相关问题解答

以下是与此主题相关的更多常见问题解答:

Advertisements