我有一个包装div,其中包含2个div相邻。在这个容器上面,我有一个包含我的标题的div。包装器div必须是100%减去标题的高度。头部大约是60像素。这是固定的。我的问题是,如何设置包装器div的高度为100% - 60px ?

<div id="header"></div>
<div id="wrapper">
  <div id="left"></div>
  <div id="right"></div>
</div>

当前回答

使用一个外部包装div设置为100%,然后你的内部包装div 100%现在应该是相对的。

我以为这对我很管用,但显然不是:

<html>
<body>
<div id="outerwrapper" style="border : 1px solid red ; height : 100%">
<div id="header" style="border : 1px solid blue ; height : 60px"></div>
<div id="wrapper"  style="border : 1px solid green ; height : 100% ; overflow : scroll ;">
  <div id="left" style="height : 100% ; width : 50% ; overflow : scroll; float : left ; clear : left ;">Some text 

on the left</div>
  <div id="right" style="height : 100% ; width 50% ; overflow : scroll; float : left ;">Some Text on the 

right</div>
</div>
</div>
</body>
</html>

其他回答

在CSS3中你可以使用

height: calc(100% - 60px);

使用一个外部包装div设置为100%,然后你的内部包装div 100%现在应该是相对的。

我以为这对我很管用,但显然不是:

<html>
<body>
<div id="outerwrapper" style="border : 1px solid red ; height : 100%">
<div id="header" style="border : 1px solid blue ; height : 60px"></div>
<div id="wrapper"  style="border : 1px solid green ; height : 100% ; overflow : scroll ;">
  <div id="left" style="height : 100% ; width : 50% ; overflow : scroll; float : left ; clear : left ;">Some text 

on the left</div>
  <div id="right" style="height : 100% ; width 50% ; overflow : scroll; float : left ;">Some Text on the 

right</div>
</div>
</div>
</body>
</html>
div {
    height: 100%;
    height: -webkit-calc(100% - 60px);
    height: -moz-calc(100% - 60px);
    height: calc(100% - 60px);
}

在少用的同时确保

height: ~calc(100% - 60px);

否则less是无法正确编译的

我还没有看到这样的帖子,但我想我应该把它放在那里。

<div class="main">
<header>Header</header>
<div class="content">Content</div>

CSS:

body, html {
    height: 100%;
    margin: 0;
    padding: 0;
}

.main {
    height: 100%;
    padding-top: 50px;
    box-sizing: border-box;
}

header {
    height: 50px;
    margin-top: -50px;
    width: 100%;
    background-color: #5078a5;
}

.content {
    height: 100%;
    background-color: #999999;
}

这是一个工作的jsfiddle

注意:我不知道浏览器的兼容性是什么。我只是在玩其他的解决方案,这似乎很有效。

如果您需要支持IE6,请使用JavaScript来管理包装器div的大小(读取窗口大小后设置元素的位置(以像素为单位)。如果您不想使用JavaScript,那么就不能这样做。有一些变通办法,但预计需要一到两周时间才能在每种情况下和每种浏览器中工作。

对于其他现代浏览器,使用以下css:

position: absolute;
top: 60px;
bottom: 0px;