共同点
test-align 和margin 都可以居中:
test-align:Center.
margin: 0 auto.
很好但是看下区别:
<div style="background:red;text-align: center;">
<div style="background:yellow;width:30%;text-align: center;">
<span>
good
</span>
</div>
</div>
这里我们同样适用text-align,但是呢,span居中了,而div没有居中。
这个时候我们看下概念.
正文
概念
基本概念:
1.text-align: 属性规定元素中的文本的水平对齐方式;
该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式;
一般情况下设置文本对齐方式的时使用此属性。支持值 justify。
Example: div { text-align: left; } //文本居左对齐
注释:所有浏览器都支持 text-align 属性;任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。
2.margin 是设置对象四边的外延边距,被称为外补丁或外边距。
Example: div { margin: 20px 10px 30px 40px; } // 表示对象外边距,顶20px、右10px、下30px、左40px
区别
1.text-align:center 设置文本或img标签等一些内联对象(或与之类似的元素)的居中。
2.margin:0 auto 设置块元素(或与之类似的元素)的居中。
这两个属性IE与FF的理解也有所不同。我们设置一个段落P,在段落内存在一个图片img标签。
注意
注意:
1.当设置body{text-align:center;}。
在IE中,段落P,图片img同时实现了居中对齐,也就是说text-align:center;同时作用于元素p与元素img。
在FF中,段落P,没有能实现居中对齐,而图片img实现了居中对齐,也就是说text-align:center;作用于img标签,而段落p标签没有起到居中的作用。
2.当设置段落 p {margin:0 auto;}。
在IE与FF中,段落P均实现了居中对齐。图片img由于不是作用对象,所以不会居中对齐。
有三种情况需要说明:
-
margin:0 auto;的选择器是作用对象,如div,p,而不是body。如果设置:body { margin:0 auto; }将不会达到任何效果,除非你定义body的宽度,那将会让body内的元素产生位置变化。如我们设置body宽度为500px。对p段落不作任何设置,我们最大化窗口将会看到段落并非处于窗口的最左上角。
-
设置段落 p {text-align:center;} 将要实现的并不是段落本身的对齐方式,而是段落内元素居中对齐。
-
设置图片标签img {margin:0 auto;} ,就犯了一个小错误,img类于内联对象,不可以设置图片img标签的margin属性,如果一定要设置,那么先将它的属性转变为块元素,如下面的代码:img {display:block; margin:0 auto;}
再说明一下,img在渲染的时候有1个像素的空隙,那么可以设置display:inline-block;来解决这个问题。