Heim  >  Artikel  >  Web-Frontend  >  css中设置margin:0 auto; 水平居中无效的原因分析

css中设置margin:0 auto; 水平居中无效的原因分析

伊谢尔伦
伊谢尔伦Original
2016-11-23 14:36:322092Durchsuche

很多初学制作网页的朋友,可能会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能居中的问题,margin:0 auto;的意思就是:上下边界为0,左右根据宽度自适应,其实就是水平居中的意思,在这里说两个典型的错误引起的不能居中的问题:

1、没有设置宽度

<div style="margin:0 auto;"></div>

看看上面的代码,根本没有设置DIV的宽度,如何根据宽度自适应呢?新手比较容易忽略的问题。

2、没声明DOCTYPE

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

2)看看下面的代码,是不是很熟悉?像这样的,在文档最顶端,所有代码之上的乱七八糟的东西,就是用来声明DOCTYPE的:

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

3)你有三种选择,用来声明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,你不能使用任何表现层的标识和属性,例如0c6dc11e160d3b678d68754cc175188a,完整代码如下:

<!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">

4)至于选择哪种,使用过渡的就可以了。

说了半天,margin:0 atuo;不起作用,不能居中的话,看看你的文档最顶端有没有声明DOCTYPE,没有就复制粘贴一下,就可以了。

还有就是 margin:0 auto; 和 margin-left:auto; margin-right:auto;的现实效果有时间还不一样,其原因可能在于设置了margin-top的高度不为0时,会出现意想不到的效果。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:优化你的cssNächster Artikel:css强制换行和超出隐藏实现