本文是在参考众大神文章基础上,整理的几个常用方案,另外也掺杂个人的一些猜想,如有不妥,请不吝指出
下面开始正题,为了方便验证+展示,下面的案例我会直接附上个人验证的源码+截图1.
Document
Document
(所有实例运行效果图,均类似右图,下面就不在粘图了(笔者太懒。。。。))
这个案例主要应用了两个div,container和innerCnt组成,子div设成,固定宽高(非auto即可)、绝对定位(absolute)、top/right/bottom/left都设为0才能实现水平垂直居中的效果:
下面是本人猜测:在绝对定位情况下,如果没有设置坐标值(上右下左的距离),则默认吸附父容器左上角,但同时设置了上右下左的距离为等值的情况下相当于四个人同时朝这四个方向一起在拉绳子,当用相同的力量是达到了一个平衡态,使得容器得以水平垂直居中显示...233我太有才了这都想得出来
2.
1 2 3 4 5Document 6 23 24 2526 2728 29
这个例子主要展示的是table-cell的应用
table-cell | 此元素会作为一个表格单元格显示(类似 <td> 和 <th>) |
使得整个区块作为一个单元格,通过vitical-align来控制垂直居中,text-align控制水平居中(需要注意的是子元素应该设置为inline-block来作为行内区块)。
3.
Document hello
利用一个空div来占位,然后通过margin-bottom来占位使得下方元素上提,实现元素的水平(text-align:center)垂直居中。