css中设置margin:0 auto无法实现居中的原因

发布时间:2019-10-23编辑:脚本学堂
初学者制作网页时,会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能实现居中的问题!margin:0 auto;意思就是:上下边界为0,左右根据宽度自适应!就是水平居中的意思,在这篇文章里就讲述无法实现居中的两个原因。

原因一、没有设置宽度
<div style="margin:0 auto;"></div>
看看上面的代码,根本没有设置DIV的宽度,如何根据宽度自适应呢?新手比较容易忽略的问题!

原因二、没声明DOCTYPE
①DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分!

②看看下面的代码,是不是很熟悉?像这样的,在文档最顶端,就是用来声明DOCTYPE的!
 

复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

③有三种选择,来声明DOCTYPE
* 过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法),完整代码如下:
 

复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

* 严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

* 框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

④选择过度的就可以了。
margin:0 atuo;不起作用,不能居中的话,看看你的文档最顶端有没有声明DOCTYPE。
还有就是 margin:0 auto; 和 margin-left:auto; margin-right:auto;的现实效果有时候还不一样,其原意可能在于设置了margin-top的高度不为0时,会出现意想不到的效果。

>>> 查看更多 css 居中 相关教程 <<<