当前位置: 首页 > 面试题库 >

使用上下高度未知的CSS将div设置为剩余高度

计均
2023-03-14
问题内容

是否可以使包装器填充窗口高度(不滚动),并且可以使div滚动中心而不弄乱像素和javascript?

<div id="wrapper">
  <h1>Header</h1>
  <div id="center">
    <div style="height:1000px">high content</div>
  </div>
  <div id="footer">Footer</div>
</div>

基本上,我希望页眉在顶部可见,而页脚在底部始终可见,并且在中心具有可滚动的内容,占据剩余的高度。
页眉,页脚和中心div的高度都是未知的(未设置px或%,即可变的字体大小或填充)。纯CSS可能吗?


问题答案:

html, body {

    margin: 0;

    padding: 0;

    height: 100%;

}

.l-fit-height {

    display: table;

    height: 100%;

}

.l-fit-height-row {

    display: table-row;

    height: 1px;

}

.l-fit-height-row-content {

    /* Firefox requires this */

    display: table-cell;

}

.l-fit-height-row-expanded {

    height: 100%;

    display: table-row;

}

.l-fit-height-row-expanded > .l-fit-height-row-content {

    height: 100%;

    width: 100%;

}

@-moz-document url-prefix() {

    .l-scroll {

        /* Firefox requires this to do the absolute positioning correctly */

        display: inline-block;

    }

}

.l-scroll {

    overflow-y: auto;

    position: relative;

    height: 1000px;

}

.l-scroll-content {

    position: absolute;

    top: 0;

    bottom: 0;

    height: 1000px;

    min-height:100px;

}


<div class="l-fit-height">

    <section class="l-fit-height-row">

        <div class="l-fit-height-row-content">

            <p>Header</p>

        </div>

    </section>

    <section class="l-fit-height-row-expanded">

        <div class="l-fit-height-row-content l-scroll">

            <div class="l-scroll-content">

                <p>Foo</p>

            </div>

        </div>

    </section>

    <section class="l-fit-height-row">

        <div class="l-fit-height-row-content">

            <p>Footer</p>

        </div>

    </section>

</div>


 类似资料:
  • 问题内容: 我有一个带两个孩子的容器。第一个孩子有给定的身高。如何让第二个孩子占据容器的“自由空间” 而不给其指定高度? 在示例中,粉红色也应占据白色空间。 与此问题类似:如何使div占据剩余高度? 但是我不想摆 绝对的位置 。 问题答案: 可以通过多种方式扩展子级以填充剩余的空间,具体取决于您希望获得的浏览器支持以及是否具有定义的高度。 样本 格网 CSS的布局提供了另一种选择,尽管它可能不如F

  • http://jsfiddle.net/s8g4e/ 类似于这个问题:如何使div占据剩余高度? 但我不想给位置绝对。

  • 问题内容: 我有这个问题,我有两个股利: 如何使div2占据页面的剩余高度? 问题答案: 使用绝对定位:

  • 问题内容: 我有三分之二的div。所包含的div之一向左浮动,另一个向右浮动。我希望2个同级div始终处于相同的高度,但是对此存在问题。到目前为止,我只在Firefox中查看该页面,并认为在至少一个浏览器中运行它后,我会担心任何跨浏览器的问题。 这是标记: 这是CSS: 如果中的内容长于,则不会扩展为匹配。在我尝试了一个例子,说的Firefox的计算式的高度是,的计算式的高度是和的计算的风格高度为

  • 问题内容: 我正在一个Web应用程序上工作,我希望其中的内容能填满整个屏幕的高度。 该页面具有标题,其中包含徽标和帐户信息。这可以是任意高度。我希望内容div将页面的其余部分填充到底部。 我有一个标题和一个内容。目前,我正在使用表格进行布局,如下所示: CSS和HTML 页面的整个高度已填满,不需要滚动。 对于content div中的任何内容,设置将其放在标题的正下方。有时,内容将是一个实际表,

  • 问题内容: 我正在尝试将表格列分为两列。我希望最右边的列停靠在页面的右边,并且此列应具有不同的背景色。右侧的内容几乎总是小于左侧的内容。我希望右侧的div始终足够高,以到达其下一行的分隔符。如何使背景色填充该空间? 编辑:我同意这个示例非常类似于表,并且实际表将是一个不错的选择。但是我的“真实”页面最终将变得不像表格一样,我只想首先掌握此任务! 另外,由于某种原因,当我在IE7中创建/编辑帖子时,