Html 集装箱舱不工作的背景色,don';我不明白为什么?

Html 集装箱舱不工作的背景色,don';我不明白为什么?,html,css,background-color,Html,Css,Background Color,我有一个非常简单的网站,我正在练习,我的container div的背景色有问题。我确信这是一个非常简单的修复,但我想了解为什么它不起作用。这是我的CSS: body { margin: 0px; padding:0px; height: 100%; background-color: black; } #Container { width: 98%; height: 100%; background-color: grey; } 出于某种原因,我唯一能让它工

我有一个非常简单的网站,我正在练习,我的container div的
背景色有问题。我确信这是一个非常简单的修复,但我想了解为什么它不起作用。这是我的CSS:

body {
  margin: 0px;
  padding:0px; 
  height: 100%; 
  background-color: black;
}

#Container {
  width: 98%;
  height: 100%;
  background-color: grey;
}
出于某种原因,我唯一能让它工作的方法就是在我的身体造型中加入html,这有什么原因吗

body, html {
  margin: 0px;
  padding:0px; 
  height: 100%; 
  background-color: black;
}

谢谢

请确保正确调用选择器。这是区分大小写的


Container Vs Container(小写c和大写c)以及dot(.)的(#Vs.)类和Hash(#)的ID(#)

问题在于,除了
根元素之外,元素需要具有指定宽度的父元素(以便计算其自身的相对高度),您可以使用相对于视口的单位来避免问题,例如
vh
1vh
等于查看端口高度的百分之一,因此几乎可以直接替代基于
%
的高度),例如:

body {
    margin: 0px;
    padding:0px;
    height: 100vh;
    background-color: black;
}
#Container {
    width: 98%;
    height: 100%;
    background-color: grey;
}

当然,这种方法的问题在于它限制了
#容器
的内容增长,并允许
滚动(当然,这可能是出于设计),但您可以使用
min height
来避免问题,并允许元素增长:

html {
    padding: 0;
    margin: 0;
}
body {
    margin: 0px;
    padding:0px;
    min-height: 100vh;
    background-color: black;
}
#Container {
    width: 98%;
    min-height: 100vh;
    background-color: grey;
}
#expansion {
    height: 3000px;
    width: 2em;
    background-color: #f00;
}

(请注意,在上面的演示中,我使用了另一个元素来强制展开
#容器
,这纯粹是为了演示,而不是此方法所要求的。)

参考资料:


这是因为100%是一个相对单位。如果不声明
html
元素的高度,
body
不知道100%应该基于什么。此外,建议将
body
设置为
minheight:100%
,这样当总内容超过视口高度时,它可以“增长”。如果希望其他div使用%作为一个单位,则必须为html指定100%的宽度或高度,这一说法是否正确?@Sai部分正确。将HTML的高度设置为100%将允许其他直接子对象使用基于视口高度的百分比。然而,其他不是身体直接子代的人不会有他们相对于身体的高度。。。这取决于父对象的高度。