如何使用 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>使用 CSS 在 DIV 中垂直居中 IMG</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>使用 CSS 在 DIV 中垂直对齐图像</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 相关问题解答
以下是与此主题相关的更多常见问题解答: