css高度自适应的实现方法

发布时间:2020-02-10编辑:脚本学堂
高度自适应问题,别的方法也可实现,本文主要讲用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%,出现
了需求不允许的纵向滚动条。
这个要求,方法如下:

复制代码 代码示例:

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

#nav {
    background-color: #85d989;
    width: 100%;
    height: 50px;
    float: left;
    }
#content {
background-color: #cc85d9;
height:100%;
}

这里利用了浮动,最后的结果仅仅是看着没问题,当然了,如果你只是简单的展示文本和图片,这种方法已经够用了,但是
如果你想用js做点交互,比如#content内部有个需要拖拽的元素,它的top最小值肯定不能是0,否则就被#nav挡住了,请看下面示例:
复制代码 代码示例:

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

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

}

重点:是要top和bottom一起使用,这个不合常规的用法,可以强制定义盒模型的区域。