一. 已经元素的宽高的前提下:
(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设置一样的值,把容器撑开
方法如下:一、行高(line-height)法
如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如:
p
{
height:30px
line-height:30px
width:100px
overflow:hidden
}
这段代码可以达到效果。
二、内边距(padding)法
另一种方法和行高法很相似,它同样适合一行或几行文字垂直居中,原理就是利用padding将内容垂直居中,比如:
p
{
padding:30px
}