Css <;车身>;背景色属性不为';无法正确使用HTML5 DOCTYPE

Css <;车身>;背景色属性不为';无法正确使用HTML5 DOCTYPE,css,html,doctype,Css,Html,Doctype,所以我有一个基本的2列HTML布局,我已经应用了一些基本的CSS: html { background-color: gray; } body { width: 900px; background-color: white; margin: 0 auto; overflow: hidden; } .logo, .nav, .contact { float: left; width: 248px; border: 1px black solid; } .abo

所以我有一个基本的2列HTML布局,我已经应用了一些基本的CSS:

html {
  background-color: gray;
}

body {
  width: 900px;
  background-color: white;
  margin: 0 auto;
  overflow: hidden;
}

.logo, .nav, .contact {
  float: left;
  width: 248px;
  border: 1px black solid;
}

.about, .banner, .content {
  float: right;
  width: 648px;
  border: 1px black solid;
}

问题是,当我将
声明添加到页面开头时,
背景色
属性对
主体
标记不起作用。我假设这与默认为没有DOCTYPE的怪癖模式有关,但是我做错了什么,这可能是无效的CSS?(我已经用jigsaw进行了验证,它没有显示任何错误/警告。)

因为您缺少DOCTYPE(本来应该在那里),您的页面是以怪癖模式呈现的。在“怪癖”模式下,已知浏览器会将
body
的高度拉伸到视口高度的100%。在标准模式中,通过具有适当的DOCTYPE触发,
body
的行为类似于常规块级元素,默认情况下仅与其内容一样高。在您的情况下,这会导致
主体的背景色不可见

CSS本身没有什么问题,这就是它进行验证的原因,但是如果希望
body
在标准模式下拉伸到视口的高度,则应分别向
html
body
添加以下高度属性:

html {
  height: 100%;
}

body {
  min-height: 100%;
}