当前位置: 首页 > 知识库问答 >
问题:

CSS拉伸内容容器高度如果空溢出如果太大[重复]

柴增
2023-03-14

我拥有的是一个简单的容器结构,后跟两个子元素,内容页脚

页脚具有固定的高度,内容应填充剩余的空白空间。这很容易通过show: table;实现,但是由于某种原因,我不知道如何使Content元素溢出,以便在其内容超过网站窗口高度时工作?

这里是一个JSFiddle,如果您设置content_child高度为10px,您可以看到内容元素很好地填充了空间,但是当content_child大得多时内容元素不应该扩展现在的情况我错过了什么?

如果可能的话,我宁愿不使用JavaScript来解决这个问题。

body, html{
  height: 100%;
  padding: 0px;
  margin: 0px;
}

.container{
  display:table;
  background; black;
  width: 100%;
  background: black;
  height: 100%;
}
.top{
  background: blue;
  display:table-row;
  height: 100%;
}

.bottom{
  background: red;
  height: 60px;
}

.content{
  height: 100%;
  overflow: hidden;
  padding: 5px;
}

.content_child{
  height: 1000px;
  background: grey;
}
<div class="container">
    <div class="top">
      <div class="content">
          <div class="content_child"></div>
          </div>
      </div>
  </div>
  <div class="bottom">
  </div>
</div>

共有3个答案

锺离嘉容
2023-03-14

真的不需要桌子。根据您试图实现的目标,这可能适用于您:

body {
  padding: 0;
  margin: 0;
}
.content {
  position: fixed;
  top: 0;
  bottom: 50px;
  width: 100%;
  background: blue;
  color: #fff;
  overflow-y: auto;
}
.footer {
  position: fixed;
  bottom: 0;
  height: 50px;
  width: 100%;
  background: red;
}
<div class="content">
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
  <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p>
</div>
<div class="footer"></div>
宋育
2023-03-14

你唯一需要做的就是改变这个CSS规则

.content{
  height: 100%;
  overflow: auto;   /* change from hidden to auto */
  padding: 5px;
}

这将使它看起来/工作起来像这样

body, html{
  height: 100%;
  padding: 0px;
  margin: 0px;
}

.container{
  display:table;
  background; black;
  width: 100%;
  background: black;
  height: 100%;
}
.top{
  background: blue;
  display:table-row;
  height: 100%;
}

.bottom{
  background: red;
  height: 60px;
}

.content{
  height: 100%;
  overflow: auto;
  padding: 5px;
}

.content_child{
  height: 1000px;
  background: grey;
}
<div class="container">
  <div class="top">
    <div class="content">
      <div class="content_child"></div>
    </div>
  </div>
  <div class="bottom">  
  </div>
</div>
祁飞飙
2023-03-14

Flexbox可以做到这一点。

css lang-css prettyprint-override">body {
 margin:0;
 }

.container {
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.content {
  flex: 1;
  background: #bada55;
  overflow-y: auto;
}
.expander {
  height: 1000px;
  /* for demo purposes */
}
footer {
  background: red;
  height: 60px;
}
<div class="container">
  <div class="content">
    <div class="expander"></div>
  </div>
  <footer></footer>
</div>
 类似资料:
  • 问题内容: 我需要伸展黄色的孩子来填补父母的所有身高。无需设置父级高度。父级的高度应取决于蓝色的子级文本。 问题答案: 使用Flexbox时,主要错误是开始全面使用。 在很多情况下,我们已经习惯了这一点,尽管谈到Flexbox时,它通常会破坏它。 解决方案很简单,只需删除,它将自动运行。 它的原因,是 柔性的项目 在 行 方向(默认),控制垂直行为,并作为其默认的是这只是工作原样。 堆栈片段

  • 我刚开始学习flex,到目前为止我印象深刻。但是,我对一个包含页眉/页脚和三列的完整页面应用程序有一个问题。第一列包含一个项目列表,因为我不能给它的父项设置固定的高度,所以每次列表增长时,它都会向下推页脚。 这是一个布局的代码:http://codepen.io/anon/pen/vNVQNjHtml: CSS:

  • 我试图创建一个与tkinter接口。它应该在左边有一个控制面板,右边有一组3个标签。 选项卡将显示图像,这些图像对于屏幕来说可能太大,但是只有在程序动态创建图像后才能知道确切的大小。因此,我希望有一个,它可以扩展以填充顶部窗口,如果图像对于笔记本框架来说太大,则应显示滚动条以允许看到所有图像。我找不到将滚动条连接到笔记本的方法,所以我将它们连接到笔记本内的画布上。 下面的代码扩展了画布以适应图像,

  • 我正在使用flexbox布局将三个div定位在一列中,以便每个div具有相同的高度。如果每个div的内容太大,则会显示滚动条。我希望每一节只扩展到其内容的高度,但目前发生的情况是,每一节总是相同的高度,而不管其中的内容如何。 如果容器是900px,则每个节应该是300px,如果一个节的内容超过300px高,则应该出现滚动条。但是,如果lets的内容说中间的部分只有100px高,那部分应该只有100

  • 问题内容: 我有一个如下所示的div页面 样式 我想调整div的高度以填充(或拉伸到)整个div (标有绿色边框),并且不想越过页脚divD。我该如何解决? 问题答案: 只需添加到造型。应该没有必要。

  • 如何使页面更大,使文本/图像根据新的大小进行拉伸?我只找到了缩小但不扩大的方法。。。有什么想法吗? 提前感谢!!!