zoukankan      html  css  js  c++  java
  • css高度自适应

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

    高度自适应问题,我很抵触用js去解决,因为不好维护,也不够自然,但是纯用CSS,难度不小,比如下面我要说的例子。

    需求:

    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,下面就来试吧:


    这个需求真的让我非常崩溃,看似简单,换了n种方式都觉得不靠谱,最后找到一种最接近理想效果的方法,如下

    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一起使用,这是很反常规的用法,可以强制定义盒模型的区域,神奇啊

  • 相关阅读:
    mac c++编译出现segmentation fault :11错误
    ssh 连接缓慢解决方法
    237. Delete Node in a Linked List
    203. Remove Linked List Elements
    Inversion of Control Containers and the Dependency Injection pattern
    82. Remove Duplicates from Sorted List II
    83. Remove Duplicates from Sorted List
    SxsTrace
    使用CCleaner卸载chrome
    decimal and double ToString problem
  • 原文地址:https://www.cnblogs.com/baixc/p/5755510.html
Copyright © 2011-2022 走看看