margin: 0 auto; 元素水平居中布局无效

Posted Mentalflow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了margin: 0 auto; 元素水平居中布局无效相关的知识,希望对你有一定的参考价值。

失效原因:

  1. 要给居中的元素一个宽度,否则无效。
  2. 该元素一定不能浮动或绝对定位,否则无效。
  3. html中使用<center></center>标签,需考虑好整体构架,否者全部元素都会居中的。
  4. 有时需要给父级元素添加text-align: center;
  5. 有时可能涉及到 <!DOCTYPE>类型相关定义。

当元素 float 后元素身上发生了什么:

  1. 脱离当前的文档流,变换到容器的边缘,或是另一个浮动box的边缘,若空间不够则向下移动直到可以放下(margin的值是auto或不指定在渲染时会被当做0处理)
  2. 文档流中的line box, inline box将围绕float box
  3. float box若不设宽度将是它实际内容的宽度
  4. 把box都变成block-level box,形成一个新的block formatting context
  5. top/left/right/bottom, z-index无效

滥用float会导致各种bug,诸如:Incorrect Float Shrink-Wrap Bug、Float Squeeze Weird Gap Bug、Float Squeeze Duplicate Last Character Bug、Image Float Bullet Chaos Bug、Staircase Bug、Double Margin Bug、Italics Float Bug、3px Jog Bug、Scared of Floats Bug、Escaping Floats Bug、IE6 Peekaboo Bug……等等。所以在实际使用中有个原则,尽量不同时用2个或以上的float(比如可以用inline-block替代float)

 

转自 http://blog.csdn.net/Dong_PT/article/details/51239526

 

以上是关于margin: 0 auto; 元素水平居中布局无效的主要内容,如果未能解决你的问题,请参考以下文章

525,水平居中的方法

元素水平垂直居中

这几种经典 CSS 布局问题你都能解决嘛?

绝对定位元素水平居中和垂直居中的原理

元素居中布局

html+css水平居中和垂直居中