一. 已经元素的宽高的前提下:
(1) left:50%top:50%
父元素设置相对定位,position: relative
子元素(要居中的元素)设置绝对定位,position: absolute left: 50% top: 50%
(2)设置margin: auto
父元素设置相对定位,position: relative
子元素(要居中的元素)设置绝对定位,position: absolutemargin: auto
(3) flex布局
父元素设置 display: flex justify-content: center align-items: center
二.未知元素宽高的情况下:
(1)四个方向设置值,把元素撑开
父元素设置相对定位,position: relative
子元素设置绝对定位,position: absolutetop与bottom设置一样的值,left与right设置一样的值,把容器撑开
1、首先先在页面里加载一张图片,代码和效果如下图所示:
2、然后设置给图片起一个class名,方便一会儿的操作。
3、然后给图片设置css样式,因为方便的原因就直接在html页面写css样式了。
4、经常使用“margin: 0 auto”来实现水平居中,而一直认为“margin: auto”是不能实现垂直居中,但是实际上,仅需要添加一些限制便能实现效果,就是通过定位:
position: absolute
top: 0
left: 0
bottom: 0
right: 0
设置定位让上下左右都为0,然后通过margin:0 auto,来让元素实现上下左右都居中。
5、设置完CSS样式之后,通过浏览查看代码的效果就可以,可以看到图片已经实现了。
6、最后给大家附上全部的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>使用CSS让图片水平垂直居中</title>
</head>
<body>
<img class="pic" src="img/timg.jpg" alt="" />
</body>
<style type="text/css">
.pic{
margin: auto
position: absolute
top: 0
left: 0
bottom: 0
right: 0
}
</style>
</html>