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

粘性页眉和页脚可滚动内容

蔚琦
2023-03-14
问题内容

我正在尝试创建一个包含三个div的页面:页眉,页脚和内容区域。这些应该占据屏幕的100%。

页眉和页脚很小,不会改变,内容区域可以是任何大小,因此我添加overflow:auto了使其变大时滚动的功能。

我正在使用以下CSS设置html和正文高度,因此容器上的height:100%技巧将起作用:

html, 
body {
    height: 100%;
}

我的文档结构为:

<div style="height:100%;">
  <div>
    Header content
  </div>
  <div style="overflow:auto;">
    Body content... this could be very long
  </div>
  <div>
    Footer content
  </div>
</div>

问题答案:

方法1-Flexbox

它适用于已知和未知的高度元素。确保设置外股利height:100%;和重置默认marginbody

html, body {

  height: 100%;

  margin: 0;

}

.wrapper {

  height: 100%;

  display: flex;

  flex-direction: column;

}

.header, .footer {

  background: silver;

}

.content {

  flex: 1;

  overflow: auto;

  background: pink;

}


<div class="wrapper">

  <div class="header">Header</div>

  <div class="content">

    <div style="height:1000px;">Content</div>

  </div>

  <div class="footer">Footer</div>

</div>

方法2-CSS表

对于已知和未知高度元素。它也可以在包括IE8在内的旧版浏览器中使用。

html, body {

  height: 100%;

  margin: 0;

}

.wrapper {

  height: 100%;

  width: 100%;

  display: table;

}

.header, .content, .footer {

  display: table-row;

}

.header, .footer {

  background: silver;

}

.inner {

  display: table-cell;

}

.content .inner {

  height: 100%;

  position: relative;

  background: pink;

}

.scrollable {

  position: absolute;

  left: 0; right: 0;

  top: 0; bottom: 0;

  overflow: auto;

}


<div class="wrapper">

  <div class="header">

    <div class="inner">Header</div>

  </div>

  <div class="content">

    <div class="inner">

      <div class="scrollable">

        <div style="height:1000px;">Content</div>

      </div>

    </div>

  </div>

  <div class="footer">

    <div class="inner">Footer</div>

  </div>

</div>

方法3- calc()

如果页眉和页脚固定高度,则可以使用CSS calc()

html, body {

  height: 100%;

  margin: 0;

}

.wrapper {

  height: 100%;

}

.header, .footer {

  height: 50px;

  background: silver;

}

.content {

  height: calc(100% - 100px);

  overflow: auto;

  background: pink;

}


<div class="wrapper">

  <div class="header">Header</div>

  <div class="content">

    <div style="height:1000px;">Content</div>

  </div>

  <div class="footer">Footer</div>

</div>

方法4-所有百分比

如果页眉和页脚的高度已知,并且它们也是百分比,则只需执行简单的数学运算即可将它们的高度设为100%。

html, body {

  height: 100%;

  margin: 0;

}

.wrapper {

  height: 100%;

}

.header, .footer {

  height: 10%;

  background: silver;

}

.content {

  height: 80%;

  overflow: auto;

  background: pink;

}


<div class="wrapper">

  <div class="header">Header</div>

  <div class="content">

    <div style="height:1000px;">Content</div>

  </div>

  <div class="footer">Footer</div>

</div>


 类似资料:
  • 我正在用CSS来创建具有固定页眉和页脚以及可滚动内容的可滚动“窗口”。这里被接受的答案是我已经得出的最接近解决这个问题的答案,但这需要设置“内容”类div的高度。 我的目标是:1。如果内容小于机身高度,则不滚动2。如果内容长于正文高度减去页眉和页脚,则滚动。 如何实现这一点?

  • 我将页眉和页脚设置为Position:Fixed。但如果是可滚动的内容,则文本将转到页眉/页脚区域:下面是我的完整代码:http://jsfidle.net/kaqz1km2/6/ 在这种情况下,我不想使用background-image或background-color。 下面是CSS: null null

  • 也许以前有人问过这个问题,但我似乎找不到一个准确的答案或解决办法。我开始使用RecycerView,并使用LinearLayoutManager实现了它。现在,我想添加自定义的页眉和页脚项,这些项不同于RecycerView中的其他项。页眉和页脚不应该粘,我希望他们滚动与其余的项目。有人能指出一些例子如何做到这一点或只是分享想法。我会非常感激的。THX

  • 大家好,我试图修复产品页面上的粘性div,但当它到达页脚时,元素与我的内容重叠。我正在使用CSS和js来修复我的div 用于css 还有js 当滚动到页脚时,有没有办法停止滚动?

  • 我正在尝试创建一个模式对话框,它具有固定的页眉和页脚,并且模式对话框中的内容(在本例中为用户列表)是可滚动的... 到目前为止,我的最佳尝试给了我一个结果: 我想看过这张照片后,我就不必再描述问题出在哪里了...我也假设你会知道解决方案是什么样子的...:) 但为了确定我还是会写出来...模式对话框需要有一个固定的页眉(标题“编辑板”、“板名”和“板类型”所在的区域)和页脚(“保存”按钮所在的区域

  • 问题内容: 如何在我的PDF页面中添加 页眉 和 页脚 ?我想要一个表,表头中有3列,其他表中,页脚中有3列。我的页面可能是A3或A4,并且是横向或纵向。 谁能帮我?我在互联网上找不到很好的例子。 谢谢! mas正 问题答案: 创建一个MyPageEventListener类,该类扩展了 PdfPageEventHelper 将页面事件侦听器添加到PdfWriter对象 在MyPageEventL