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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值