通过限制 HTML 宽度来控制流体宽度

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费信用额度!

<html> 元素是任何网页上级别最高的元素。其他所有元素都包含在其中。如果您正在制作一个流体宽度网站,但希望限制其可以扩展的最大宽度(这是一个好主意),您可以通过简单地将最大宽度应用于 html 元素来做到这一点。

html {
  max-width: 1200px;
}

除非明确强制,否则没有任何内容会自然地比该宽度更宽。您甚至可以保持内容居中。

html {
  max-width: 1200px;
  margin: 0 auto;
}

但是背景呢?如果宽度更大,它现在会在边缘被截断吗?不会。html 元素在这方面是独一无二的,无论您将其缩小到什么程度,背景都会填充整个页面。

html {
  max-width: 1200px;
  margin: 0 auto;
  background: #eee; /* Fills the page */
}

还有一件稍微奇怪的事情……尽管 HTML 元素尊重其新大小并且是最顶层的元素,但绝对定位的元素仍然相对于浏览器窗口而不是 html 元素进行定位,除非您将 position 属性设置为 relative。

html {
  max-width: 1200px;
  margin: 0 auto;
  background: #eee; /* Fills the page */
  position: relative; /* Fix for absolute positioning */
}

适用于所有常规浏览器以及 IE 8+。IE6 和 IE 7 只是将 html 元素保留为全宽,这并不是世界末日。

非常感谢 Kit MacAllister 就此问题撰写文章。