CSS实现div的高度填满剩余空间

需求:

1. 这个矩形的高度和浏览器窗口的高度相同,不能出现纵向滚动条

2. 绿色部分高度固定,比如50px

3. 紫色部分填充剩余的高度

HTML结构暂且如下:

< div  id="main">
     < div  id="nav">nav div >
     < div  id="content">content div >
div >

 

先看1.

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

 

需求2 也很容易:

#nav {
     background-color : #85d989 ;
     height : 50px ;
}


需求3 是最让人头痛的,一般我们都会想到height:100%, 但是100%是以父元素的高度为准的,比如父元素的高度是300px,#nav占去了50px,#content理应是250px,但是写成height: 100%,结果就是#content的高度也变成了300%,出现了需求不允许的纵向滚动条。

当然,用js解决这种问题是相当简单的,但是这次我就是不想用js,下面就来试吧:

#nav {
     background-color : #85d989 ;
     width : 100% ;
     height : 50px ;
}
#content {
     background-color : #cc85d9 ;
     width : 100% ;
     position : absolute ;
     top : 50px ;
     bottom : 0px ;
     left : 0px ;
}

 

重点是要top和bottom一起使用,这是很反常规的用法,可以强制定义盒模型的区域,神奇啊

转自:http://www.cnblogs.com/zhujl/archive/2012/03/20/2408976.html

你可能感兴趣的:(CSS)