方式一
参照文字的中线对齐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body{
overflow: hidden;
}
.box{
width: 600px;
height: 500px;
border: 1px solid blue;
margin: 150px auto;
line-height: 500px;
text-align: center;
}
img{
vertical-align: middle;
}
</style>
</head>
<body>
<div class="box">
<img src="pic.jpg" alt="">
</div>
</body>
</html>
方式二
参照空标签中线对齐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body{
overflow: hidden;
}
.box {
width: 500px;
height: 500px;
border: 1px solid red;
margin: 50px auto;
text-align: center;
}
span {
display: inline-block;
height: 100%;
width: 0px;
vertical-align: middle;
}
img {
vertical-align: middle;
}
</style>
</head>
<body>
<div class="box">
<img src="pic.jpg" alt="">
<span></span>
</div>
</body>
</html>
方式三
用伪元素实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body{
overflow: hidden;
}
.box{
width: 600px;
height: 500px;
border: 1px solid blue;
text-align: center;
margin: 50px auto;
}
img{
vertical-align: middle;
}
.box::after{
content: "";
display: inline-block;
vertical-align: middle;
height: 100%;
width: 0px;
}
</style>
</head>
<body>
<div class="box">
<img src="pic.jpg" alt="">
</div>
</body>
</html>
方式四
转化为table标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box {
width: 500px;
height: 500px;
border: 1px solid red;
text-align: center;
display: table;
}
.dt {
vertical-align: middle;
display: table-cell;
}
</style>
</head>
<body>
<div class="box">
<div class="dt">
<img src="pic.jpg" alt="">
</div>
</div>
</body>
</html>
