margin:0auto与body{text-align:center;}实现元素居中 两种方法的异同
2010-12-09 16:35
751 查看
text-align是用于设置或对象中文本的对齐方式。一般情况下我们设置文本对齐方式的时候需要用此属性进行设置,如:
div { text-align: left; } 表示文本居左对齐。
margin是设置对象四边的外延边距,被称为外补丁或外边距。如:
div { margin: 20px 10px 30px 40px; }
表示对象外边距,顶20px、右10px、下30px、左40px。
我们设置某个对象水平方向居中的时候,经常将左右的外边距设置为auto来实现。如:
div { margin: 0 auto; }
现在的问题是:body{text-align:center}与margin:0 auto的异同。text-align:center设置为文本或img标签等一些内联对象(或与之类似的元素)的居中。margin:0 auto是设置块元素(或与之类似的元素)的居中。但这两个属性IE与FF的理解也有所不同。
我们设置一个段落P,在段落内存在一个图片img标签。
我们设置body{text-align:center;}。
在IE中,段落P,图片img同时实现了居中对齐,也就是说text-align:center;同时作用于元素p与元素img。
在FF中,段落P,没有能实现居中对齐,而图片img实现了居中对齐,也就是说text-align:center;作用于img标签,而段落p标签没有起到居中的作用。
我们设置段落 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;}
有朋友产生疑问了,那该如何使用呢?说说我的建议:
假如页面中的元素,均位于div标签或其它块元素内,进行了合理的嵌套,我们不必设置body{text-align:center}。只需要设置相应的div元素margin:0 auto;即可。如上面的代码所讲述,页面中的元素均位于段落p标签中,只需要将段落居中即可。
假如页面中的元素,有一部分不是在div标签或其它块元素内,我们需要设置body{text-align:center}。但也会碰到问题,这样设置以后,大部分内联元素,都居中对齐了,包括页面中其它的一些文本,还需要进行相应的调整才能适应设计的需要。如:我们设置body内有一个段落P,在段落内有一个图片img及一段文本,在body内还存在一个独立的图片img。
最后贴个代码
摘自http://www.mb5u.com/divcssjiaocheng/14410.html
div { text-align: left; } 表示文本居左对齐。
margin是设置对象四边的外延边距,被称为外补丁或外边距。如:
div { margin: 20px 10px 30px 40px; }
表示对象外边距,顶20px、右10px、下30px、左40px。
我们设置某个对象水平方向居中的时候,经常将左右的外边距设置为auto来实现。如:
div { margin: 0 auto; }
现在的问题是:body{text-align:center}与margin:0 auto的异同。text-align:center设置为文本或img标签等一些内联对象(或与之类似的元素)的居中。margin:0 auto是设置块元素(或与之类似的元素)的居中。但这两个属性IE与FF的理解也有所不同。
我们设置一个段落P,在段落内存在一个图片img标签。
我们设置body{text-align:center;}。
在IE中,段落P,图片img同时实现了居中对齐,也就是说text-align:center;同时作用于元素p与元素img。
在FF中,段落P,没有能实现居中对齐,而图片img实现了居中对齐,也就是说text-align:center;作用于img标签,而段落p标签没有起到居中的作用。
我们设置段落 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;}
有朋友产生疑问了,那该如何使用呢?说说我的建议:
假如页面中的元素,均位于div标签或其它块元素内,进行了合理的嵌套,我们不必设置body{text-align:center}。只需要设置相应的div元素margin:0 auto;即可。如上面的代码所讲述,页面中的元素均位于段落p标签中,只需要将段落居中即可。
假如页面中的元素,有一部分不是在div标签或其它块元素内,我们需要设置body{text-align:center}。但也会碰到问题,这样设置以后,大部分内联元素,都居中对齐了,包括页面中其它的一些文本,还需要进行相应的调整才能适应设计的需要。如:我们设置body内有一个段落P,在段落内有一个图片img及一段文本,在body内还存在一个独立的图片img。
最后贴个代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>www.mb5u.com</title> <mce:style type="text/css"><!-- body { text-align:center; } p { margin:0 auto; width:300px; background:#06f; } img { } --></mce:style><style type="text/css" mce_bogus="1">body { text-align:center; } p { margin:0 auto; width:300px; background:#06f; } img { }</style> </head> <body> <p> <img src="/uploads/divcss/logo3.gif" mce_src="uploads/divcss/logo3.gif" _fcksavedurl="/uploads/divcss/logo3.gif" alt="MB5U.com - CSS Web Design" width="200" height="90" style="vertical-align:top;" mce_style="vertical-align:top;" /> <br /> MB5U.com是一个专业的CSS学习站点,内容丰富并且保持天天更新,我们建立了很多QQ群供网友们互动讨论学习,MB5U.com是学习开发符合WEB标准的网页及网站重构的首选站点。 </p> <br /> <img src="/uploads/divcss/logo3.gif" mce_src="uploads/divcss/logo3.gif" _fcksavedurl="/uploads/divcss/logo3.gif" alt="MB5U.com - CSS Web Design" width="200" height="90" style="vertical-align:top;" mce_style="vertical-align:top;" /> </body> </html>
摘自http://www.mb5u.com/divcssjiaocheng/14410.html
相关文章推荐
- 正确的使用margin:0 auto与body{text-align:center;}实现元素居中
- 正确的使用margin:0 auto与body{text-align:center;}实现元素居中
- margin:0 auto与body{text-align:center;}实现元素居中的区别
- 正确的使用margin:0 auto与body{text-align:center;}实现元素居中(转)
- 居中 margin:0 auto与text-align:center的区别
- CSS实现垂直居中的常用方法 在前端开发过程中,盒子居中是常常用到的。其中 ,居中又可以分为水平居中和垂直居中。水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现。但是垂直
- margin:0 auto 与 text-align:center 的区别
- margin:auto实现绝对定位元素的水平垂直居中
- margin:auto实现绝对定位元素的水平垂直居中(粘贴过来的)
- margin:0 auto 与 text-align:center 的区别
- margin:auto实现绝对定位元素的水平垂直居中(粘贴过来的)
- margin:auto与text-align:center
- margin:0 auto 与 text-align:center 的区别
- 实现绝对定位元素水平垂直居中的两种方法
- text-align:center 和margin:0 auto的区别
- margin: 0 auto;和text-align: center;的区别
- margin:0 auto 与 text-align:center 的区别
- margin:auto实现绝对定位元素的水平垂直居中
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- 水平居中的几种方法-margin,text-align