100%高度减去标题?

时间:2012-04-17 19:11:07

标签: html css

我想为管理面板创建一个布局,但我不知道如何让#nav和#content容器始终处于浏览器窗口的100%。我不理解100%高度属性的继承,有人可以更清楚地解释它吗?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>index.htm</title>
    <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>

        <div id="header">
            <img src="./img/header_logo.png" alt="bla"/>
        </div><!-- #header -->
        <div id="nav">
        </div><!-- #nav -->
        <div id="content">
        asfdg
        </div><!-- #content -->
        <div class="clear">
        </div>

</body>
</html>

的main.css

    html, body{
    font-family: Helvetica, "Helvetica Neue", Arial, Geneva, sans-serif;
    margin: 0px;
    padding: 0px;
    height: 100%;
}
img{
    margin: 0px;
    padding: 0px;
    border-width: 0px;
}
#wrapper{

}
#header{
    background: url(img/header_bg.png) repeat-x;
    height: 65px;
    padding-top: 20px;
    padding-left: 25px;
}
#nav{
    width: 235px;
    float: left; 
    background-color: #f7f7f7;
    border-right: 1px solid #d9d9d9;
    height: 100%;

}
#content{
    float: left;
    width: auto;
    padding: 15px;

}
.clear{
    clear: both;
}

任何想法?

3 个答案:

答案 0 :(得分:102)

如果您的浏览器支持CSS3,请尝试使用CSS元素Calc()

height: calc(100% - 65px);

您可能还想添加浏览器兼容性选项:

height: -o-calc(100% - 65px); /* opera */
height: -webkit-calc(100% - 65px); /* google, safari */
height: -moz-calc(100% - 65px); /* firefox */

还要确保值之间有空格,请参阅:https://stackoverflow.com/a/16291105/427622

答案 1 :(得分:14)

如注释中所述,高度:100%依赖于显式定义的父容器的高度。实现所需目标的一种方法是使用绝对/相对定位,并指定左/右/上/下属性以“拉伸”内容以填充可用空间。我已经实现了我想要实现的目标in jsfiddle。尝试调整“结果”窗口的大小,您将看到内容自动调整大小。

在您的情况下,此方法的局限性在于您必须在父容器上指定显式margin-top以将其内容向下偏移以为标题内容腾出空间。如果你输入javascript,你可以让它变得动态。

答案 2 :(得分:4)

对于“100%的浏览器窗口”,如果你的意思是字面意思,你应该使用固定定位。然后使用top,bottom,right和left属性从视口的相应边缘偏移div边缘:

#nav, #content{position:fixed;top:0px;bottom:0px;}
#nav{left:0px;right:235px;}
#content{left:235px;right:0px}

这将设置一个屏幕,左侧235像素专用于导航,屏幕右侧是内容。

但请注意,您无法一次滚动整个屏幕。虽然您可以将其设置为单独滚动任一窗格,方法是将overflow:auto应用于div。

另请注意:IE6或更早版本不支持固定定位。