text-align:center为什么不居中的问题原因分析

text-align:center为什么不居中?

许多程序员说自己的text-align:center 不居中,大多数的原因都是由于把text-align:center 属性用在了块元素上了。但是text-align属性是只针对行内元素才有用的。
 

解释一下,行内内容是说由行内元素组成的内容,行内元素大家都知道,比如 SPAN 元素,IFRAME元素和元素样式的 ‘display : inline’ 的都是行内元素;块级内容跟则是由块级元素构成,DIV 是最常用的块级元素。块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。

这样,我们对这个特性的认识应该就清楚了。但是,问题来了,虽然标准里这么规定,那么是不是所有浏览器都遵守呢?答案是否定的。猜猜是哪个浏览器这么特立独行啊? IE!!

IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。

解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:auto; margin-right:auto”。但这个方式 IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的 “text-align:center;”。

若居中对齐的子元素内的行内内容不需要居中对齐,则还需要为其设置“text-align:left”