Div百分比高度

时间:2013-01-27 07:53:34

标签: css html percentage jsfiddle

  

可能重复:
  Percentage Height HTML 5/CSS

这需要一个简单的但我为什么以div的百分比指定的高度不适用于它。

例如:

<div class="container">
  adsf
</div>

CSS:

.container
{
  width:80%;
  height:50%;
  background-color:#eee;
}

当我将高度从%更改为px时,它的效果非常好。 %与px一样有效,但为什么只有px有效,%为无效。 here是jsfiddle

修改 虽然在原始问题50%之后我错过了分号,这完全破坏了它。事实上,我打算问的是为什么50%不会使它消耗50%的容器。它的高度仅取其高度而不是其容器的50%。

3 个答案:

答案 0 :(得分:61)

整页的50%不是因为“整页”只是你的内容有多高。将封闭的htmlbody更改为100%高度,它会起作用。

html, body{
    height: 100%;
}
div{
    height: 50%;
}

http://jsfiddle.net/DerekL/5YukJ/1/

enter image description here

^你的文件只有20px高。 20px的50%是10px,并不是你所期望的。

enter image description here

^现在,如果您将文档的高度更改为整个页面的高度(150px),150px的50%是75px,那么它将起作用。

答案 1 :(得分:2)

您还需要为bodyhtml提供一个高度。否则,身体将仅与其内容(单个div)一样高,并且其中50%将是该div的高度的一半。

更新了小提琴:http://jsfiddle.net/j8bsS/5/

答案 2 :(得分:1)

在“50%”

之后缺少分号(;)

但您还应该注意到div的百分比连接到包含它的div。

例如:

<div id="wrapper">
  <div class="container">
   adsf
  </div>
</div>

#wrapper {
  height:100px;
}
.container
{
  width:80%;
  height:50%;
  background-color:#eee;
}

这里.container的高度为50px。它将是包装器div中100px的50%。

如果你有:

              ADSF            

#wrapper {
  height:400px;
}
.container
{
  width:80%;
  height:50%;
  background-color:#eee;
}

然后你.container将是200px。 50%的包装。

所以你可能想看看div“包装”你的“.container”......