如何使div中心在HTML中对齐[重复]

问题描述 投票:66回答:4

可能重复: How to horizontally center a div?

使用HTML格式化对象的一种简单方法是使用align='center',但它不适用于div。

我试过了:

style='text-align:center';
style='left:50%';

我甚至是真正的中心标签

<center>

但我不能让我的目标div成为中心。

html css
4个回答
43
投票

<!DOCTYPE html>
<html>
  <head>
    <title>Center</title>
  </head>
  <body>

    <div style="text-align: center;">
      <div style="width: 500px; margin: 0 auto; background: #000; color: #fff;">This DIV is centered</div>
    </div>

  </body>
</html>

在IE,Firefox,Chrome,Safari和Opera中经过测试和使用。我没有测试IE6。 IE需要外部text-align。当您给DIV边距(左和右)值auto时,其他浏览器(和IE9?)将起作用。保证金“0 auto”是保证金“0 auto 0 auto”(右上角左下角)的简写。

注意:文本也在内部DIV内部居中,如果您希望它保留在左侧,只需指定text-align:left;对于内在的DIV。

编辑:在标准模式下运行的IE 6,7,8和9将使用设置为自动的边距。


10
投票

我认为align="center"会对齐内容,所以如果你想使用那个方法,你需要在'wraper'div中使用它 - 一个只包装其余部分的div。

text-align正在做类似的事情。

除非你将div的位置设置为相对或绝对的位置,否则忽略left:50%

通常接受的方法是使用以下属性

width:500px; // this can be what ever unit you want, you just have to define it
margin-left:auto;
margin-right:auto;

边距为自动意味着它们增长/缩小以匹配浏览器窗口(或父div)

UPDATE

感谢Meo指出这一点,如果你想,你可以节省时间并使用速记属性作为保证金。

margin:0 auto;

这将顶部和底部定义为0(因为它是零,它与缺少单位无关),左边和右边定义为'auto'然后你可以,如果你不想覆盖说顶部边距就像你想的那样与任何其他CSS规则。


1
投票

这取决于你的div是否在位:绝对/固定或相对/静态

对于位置:绝对和固定

<div style="position: absolute; /*or fixed*/; width: 50%; height: 300px; left: 50%; top:100px; margin: 0 0 0 -25%">blblablbalba</div>

这里的诀窍是在对象宽度的一半处有一个负边距

对于位置:相对和静态

<div style="position: relative; /*or static*/; width: 50%; height: 300px; margin: 0 auto">blblablbalba</div>

对于这两种技术,必须设置de宽度


-1
投票

沿着这些方向怎么样

<style type="text/css">
  #container {
    margin: 0 auto;
    text-align: center; /* for IE */
  }

  #yourdiv {
    width: 400px;
    border: 1px solid #000;
  }
</style>

....

<div id="container">
  <div id="yourdiv">
    weee
  </div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.