使用css中心网页内容的最佳方法是什么?

时间:2010-01-07 02:20:13

标签: html css

我已经看到了几种使用CSS创建简单固定宽度单列布局的方法。我喜欢显示here的那个,因为涉及的代码很少,并且它适用于我尝试的每个浏览器。

#container {
  margin: 0 auto;
  width: xxxpx;
  text-align: left;
}
<body>
  <div id="container">
    ...entire layout goes here...
  </div>
</body>

提交人提到他受到了一些批评。我不是网络开发人员所以我想问社区他们对这种方法的看法。更具体地说,是否有更好/更兼容的方法来实现这一目标?

8 个答案:

答案 0 :(得分:16)

“margin:0 auto”是执行此操作的最佳方式,您只需确保使用正确的doctype即可。我总是严格使用XHTML - 其他人也会工作。如果您没有良好的doctype,则内容将不会以IE6为中心

要实现XHTML严格doctype,请将其放在您的节点上方,作为页面的第一行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

答案 1 :(得分:2)

margin: 0 auto;(或margin-left: auto; margin-right: auto;)确实是最简单的方式。并且坚持使用内容集中内容确实没有问题。

我认为宽度标记应为max-width: xxxpx。对于那些宽度为360px或更小的移动浏览器的用户而言,他们只需获得适合其屏幕大小的容器的最大尺寸(但是你的内部布局也必须优雅地扩展。)另外值得注意的是{ {1}}无法在IE6上运行。

答案 2 :(得分:2)

您概述的方法是我使用的方法。我已经使用它好几年了,它没有让我失望。我想不出批评会是什么。

答案 3 :(得分:1)

margin: 0 auto;是集中化的最佳方法。

您引用的文章作者表示,text-align: center;需要支持IE5 / Win。我认为你可以放心地忽略这一点,因为IE5已经完全死了。

答案 4 :(得分:1)

我认为这是一个更好的解决方法。

当包含在600px宽的div id="pagebox"内时,将整个页面的内容居中

body { text-align:center; min-width:600px; }
#pagebox { text-align:left; width:600px; margin-left:auto; margin-right:auto; }

评论

min-width指定bodypagebox元素本身一样宽。
当在Windows上使用Navigator 6 + / Mozilla时,这可以防止在狭窄的浏览器窗口中出现负边缘(即无法访问)左边距。

MSIE 5不会基于auto左/右边距居中,但"text-align:center"会将顶部div放在中心位置。

希望有所帮助

答案 5 :(得分:0)

我发现使用margin: 0 auto;来集中元素是一种常见做法。

还在当前版本(HTML 4.01)中为<center> are deprecated设置标记样式。

答案 6 :(得分:0)

实现这一目标的最佳方法是创建一个div,例如960px宽,然后给它{margin:0 auto;}。

我还想做的是给div一些{padding:0 15px;}。这样,居中区域实际上是990px​​,在1024x768显示器中仍然是完美的中心对齐,而填充为使用较小显示器或谷歌浏览器的用户提供了边缘缓冲。

更进一步,我实际上创建了一个包装器div,它占据了整个页面,然后将内容div置于其中。这让我可以利用像页脚一样的东西,无论内容长度如何,它总是粘在屏幕的底部(例如http://ryanfait.com/sticky-footer/)。

答案 7 :(得分:-8)

老实说,我只使用<center>标签。我认为它已经过时了(你会得到一些关于它的投诉,可能取决于你的doctype)但它确实有效。

- 编辑

嗯,对此的贬低是合理可预测的,但我希望有人可以概述为什么(在迂腐之外)这不起作用;因为我的理解它适用于所有浏览器。我错了:)