css居中的方法:

一.水平居中

1、text-align:center方法

这种方式可以水平居中块级元素中的行内元素,如inline,inline-block;

HTML5 css怎么居中文字 css怎样居中_文档流


HTML5 css怎么居中文字 css怎样居中_HTML5 css怎么居中文字_02


但是如果用来居中块级元素中的块级元素时,如div中的div,一旦内层的div有自己的宽度,这种方法就会失效。只能让里面div的文字等内容居中,而div仍然是左对齐的。

还有一种情况,当内部的元素脱离了文档流,display:absolute的情况下,不管是否是块级元素,都会居中,但是这种居中不是基于内部div的内容的,而是内部div最左端,内部div的最左端在div的中间(前提外部div设置了position:relative/absolute/fixed);2、margin:0 auto方式这种对齐方式要求内部元素是块级元素,并且不能脱离文档流(如设置position:absolute),否则无效。

HTML5 css怎么居中文字 css怎样居中_文档流_03


HTML5 css怎么居中文字 css怎样居中_文档流_04

3、脱离文档流的居中方式。

这种通常应用在自定义弹框当中,把背景层设置成透明灰色,内容居中显示在最前面

HTML5 css怎么居中文字 css怎样居中_块级元素_05


HTML5 css怎么居中文字 css怎样居中_垂直居中_06


这种居中方式,把内部div设置宽高之后,再设置top、left各为50%,设置完之后,这里是按照左端居中的,接着我们使用负边距的方式调整,将margin-top设置为负的高度的一半,margin-left设置为负的宽度的一半,就可以居中了。

这种方式还有一种居中方法就是设置margin:-(内部div高度的一半) auto;这就不用设置left的值了。

4、display:table-cell法

display:table-cell配合width,text-align:center,vertical-align:middle让大小不固定元素垂直居中,这个方式将要对其的元素设置成为一个td,float、absolute等属性都会影响它的实现,不响应margin属性;

HTML5 css怎么居中文字 css怎样居中_垂直居中_07


HTML5 css怎么居中文字 css怎样居中_块级元素_08


二、垂直居中

1、行内元素的垂直居中把height和line-height的值设置成一样的即可。

HTML5 css怎么居中文字 css怎样居中_垂直居中_09


这样内部的span标签就可以居中了。

2、使用css3的translate水平垂直居中元素

HTML5 css怎么居中文字 css怎样居中_文档流_10


这种方式将脱离文档流的元素,设置top:50%,left:50%,然后使用transform来向左向上偏移半个内元素的宽和高。

3、使用css3计算的方式居中元素calc

HTML5 css怎么居中文字 css怎样居中_HTML5 css怎么居中文字_11


HTML5 css怎么居中文字 css怎样居中_块级元素_12

这种方式同样是将脱离文档流的元素,然后使用计算的方式来设置top和left;

CSS居中方法