我拥有的是一个简单的容器结构
,后跟两个子元素,内容
和页脚
。
页脚
具有固定的高度,内容
应填充剩余的空白空间。这很容易通过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>
真的不需要桌子。根据您试图实现的目标,这可能适用于您:
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>
你唯一需要做的就是改变这个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>
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。我该如何解决? 问题答案: 只需添加到造型。应该没有必要。
如何使页面更大,使文本/图像根据新的大小进行拉伸?我只找到了缩小但不扩大的方法。。。有什么想法吗? 提前感谢!!!