css test-align 和 margin 居中什么区别

共同点

test-align 和margin 都可以居中:

test-align:Center.

margin: 0 auto.

很好但是看下区别:

<div style="background:red;text-align: center;">
     <div style="background:yellow;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由于不是作用对象,所以不会居中对齐。

有三种情况需要说明:

  1. margin:0 auto;的选择器是作用对象,如div,p,而不是body。如果设置:body { margin:0 auto; }将不会达到任何效果,除非你定义body的宽度,那将会让body内的元素产生位置变化。如我们设置body宽度为500px。对p段落不作任何设置,我们最大化窗口将会看到段落并非处于窗口的最左上角。

  2. 设置段落 p {text-align:center;} 将要实现的并不是段落本身的对齐方式,而是段落内元素居中对齐。

  3. 设置图片标签img {margin:0 auto;} ,就犯了一个小错误,img类于内联对象,不可以设置图片img标签的margin属性,如果一定要设置,那么先将它的属性转变为块元素,如下面的代码:img {display:block; margin:0 auto;}

再说明一下,img在渲染的时候有1个像素的空隙,那么可以设置display:inline-block;来解决这个问题。

原文地址:https://www.cnblogs.com/aoximin/p/13195477.html