【发布时间】:2011-01-24 10:54:39
【问题描述】:
我已经在很多地方阅读过使用 margin:0 auto 将元素(例如 div)居中的内容。
但为什么不使用align:center?
我认为使用后者似乎更自然。
另外,我们也可以使用margin 方法来设置垂直对齐吗?
【问题讨论】:
-
大写很重要。 :) 如果您花时间正确写出问题,人们会更认真地对待您的问题。
标签: css
我已经在很多地方阅读过使用 margin:0 auto 将元素(例如 div)居中的内容。
但为什么不使用align:center?
我认为使用后者似乎更自然。
另外,我们也可以使用margin 方法来设置垂直对齐吗?
【问题讨论】:
标签: css
text-align: center 将使容器的内容居中,而margin: auto 将使容器本身居中。
您应该小心margin:auto,因为它在 IE6 中不受支持。在IE6中,你应该在外部容器上设置text-align:center,并将容器本身的CSS重置为text-align:left。
【讨论】:
首先,没有“对齐:居中”。你想到的是“text-align: center”,而那个细节——前缀“text-”——是关于问题所在的提示。 “text-align”属性用于块中的内联元素。当您尝试在某些内容中使块级元素居中时,内联布局样式没有意义。
元素上的(现在弃用) align 属性不是 CSS 的东西;这是对昔日时光的回归。
现在,关于垂直对齐,遗憾的是答案是“不”,至少实际上是这样。 “margin: auto”的技巧是行不通的。委婉地说,只有 CSS 的垂直对齐是具有挑战性的。有许多不同的情况和技术可供使用。这是一个关于这个主题的有趣(如果有点旧)页面:http://www.student.oulu.fi/~laurirai/www/css/middle/
从未来编辑 — 任何尝试垂直居中的人都应该关注flexbox layout 的可用性。
【讨论】:
text-align=center 用于将内容(例如文本)居中对齐,而margin: auto 用于将元素本身居中对齐。
然而,在旧版浏览器 (IE) 中,您可以使用 text-align:center 将 元素 对齐到中心。
但我怀疑你的意思是align=center,如下例所示:
<p align="center">
.......
</p>
<h1 align="center">
.......
</h1>
但是,并非所有元素都有align="center",您必须使用margin:0 auto 来对齐它们。
那么,
如果你想对齐元素的内容,你应该这样做:
<p style="text-align:center">
.......
</p>
如果你想对齐元素本身,你应该这样做:
<div style="margin:0 auto;">
.......
</div>
<p style="margin:0 auto;">
.......
</p>
【讨论】: