CSS垂直居中经常使用的几种方法

CSS实现垂直居中在网页布局中是常常会用到的,因此必定要牢记这些方法以应对之,写下这篇文章也是为了巩固本身的知识点。布局

方法1、对父容器使用display: table-cell+vertical-align: middle;使其内的子元素实现垂直居中;

原理:父元素设置为表格的单元格元素,而在表格单元格中的元素设置vertical-align: middle;会使其以中间对齐的方式显示;3d

化身表格元素实现垂直居中

方法2、父元素设置伪元素并设置伪元素display: inline-block;vertical-align: middle;height: 100%,而后设置子元素display: inline-block;vertical-align: middle;

原理:父元素设置伪元素,而后让其内的伪元素高为父元素的100%高度,再用vertical-align: middle;display: inline-block;使子元素与伪元素并排,而且以中间对其的方式进行对其;code

伪元素参照物使子元素垂直居中

方法3、设置上下相同的padding(若是子元素是block或inline-block元素,还可对子元素设置上下margin相同来达成一样效果);

PS:经常使用于父元素无固定高度时; 原理:利用内边距将内容区域夹在中间;cdn

父元素设置上下padding使其内子元素垂直居中

子元素设置上下margin使其自身在父元素中居中

方法4、利用给父元素设置相对定位,子元素设置绝对定位、margin: auto 0;top: 0; bottom: 0;实现垂直居中;

原理:由于auto关键词默认自动分配剩余空间,宽度相对window是固定的,因此margin: 0 auto;能够有水平居中的效果,而高度相对window并非固定的,因此margin: auto 0;不能垂直居中,因此让子元素的上下margin值不相对于window进行计算,改成相对父元素进行计算便可让margin: auto 0;生效;blog

让margin: auto 0;生效

方法5、利用绝度定位和负margin实现子元素垂直居中;

原理:利用子元素绝对定位,相对父元素向下移动父元素高度的50%,而后再利用负margin向上移动自身高度的50%达到垂直居中效果;it

绝对定位+负margin达成垂直居中

其它:利用行高line-height和父元素高一致来实现文本在父元素中垂直居中;

利用行高与父元素高度一致达成垂直居中
相关文章
相关标签/搜索