这种效果多见于矩形盒子里面调用不规则的图片,希望能够达到的效果。这个效果可以很简单的用css来实现,虽然已经烂熟于心,但是并未记录下来。今天看到又有这个需求,所以写了一个简单的demo,放在这里,便于自己记忆。
效果图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="pic"><img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1438475101,354016904&fm=58" alt=""></div>
<div class="pic"><img src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2201558756,12364836&fm=111&gp=0.jpg" alt=""></div>
</body>
</html>
<style>
.pic {
width: 120px;height: 120px;margin: 40px auto;border: 1px solid #ccc;text-align: center;padding: 5px;
}
.pic:before {
content: "";display: inline-block;height: 100%;vertical-align: middle;width: 0;
}
.pic img {
max-width: 120px; max-height: 120px;vertical-align: middle;
}
</style>
核心思想 就是给父元素添加一个固定100%高度的伪元素撑开,并使用vertical-align: middle;
使得内容垂直居中为中间,这样,图片就会垂直居中了。当然,图片也需要加上vertical-align: middle;