1. 程式人生 > >margin: 0 auto; 元素水平居中布局無效

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

定位 有時 net IT 導致 2個 tail tom for

失效原因:

  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; 元素水平居中布局無效