可能重复:
如何水平居中一个 div?
在 HTML 中将一个对象居中的一种简单方法是使用align='center'
,但它对于一个div不起作用。
我尝试了:
style='text-align:center';
style='left:50%';
我甚至用了一个居中标签
<center>
但我无法使目标 div
居中。
可能重复:
如何水平居中一个 div?
在 HTML 中将一个对象居中的一种简单方法是使用align='center'
,但它对于一个div不起作用。
我尝试了:
style='text-align:center';
style='left:50%';
我甚至用了一个居中标签
<center>
但我无法使目标 div
居中。
<!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中是必需的。当你给DIV设置(left和right)值为auto时,其他浏览器(及IE9?)将工作。"0 auto"是"0 auto 0 auto"(上右下左)的缩写。
注意:内部DIV中的文本也被居中对齐。如果您希望保持文本居左,请为内部DIV指定"text-align: left;"。
编辑:运行于标准模式下的IE 6、7、8和9将使用设置为自动的margin。
<!DOCTYPE
声明。父级文本居中的解决方法适用于怪异模式,但是今天绝对不希望在怪异模式下编写任何内容。 - bobince我认为align="center"
属性将内容居中,因此如果您想使用该方法,您需要在一个'包装器' 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;
设置边距为auto意味着它们会自动增长/缩小以匹配浏览器窗口(或父DIV)。
更新
感谢Meo指出,如果您想的话,可以使用边距的简写属性来节省时间。
margin:0 auto;
这将顶部和底部定义为0(因为是零,所以缺少单位无关紧要),而左侧和右侧则被定义为“auto”。然后,您可以像处理其他CSS规则一样覆盖顶部边距。
这取决于你的 div 是否处于 position: absolute / fixed 或 relative / static 位置。
对于 position: absolute & fixed:
<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>
对于这两种技术,设置宽度非常重要。
这样的话怎么样?
<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>
div
的宽度,然后使用margin: 0 auto;
:http://jsfiddle.net/spikey/FLL5Z/ - uSeRnAmEhAhAhAhAhA