我有一个包含标题部分和正文部分的父div.父div具有最大高度,但没有最小高度.
看这个例子:https://jsfiddle.net/1o79a6nc/2/
#cont {
padding: 5px;
background-color: red;
max-height: 150px;
max-width: 50%;
}
#body {
background-color: blue;
overflow-y: auto;
overflow-x: hidden;
}
#head {
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div id='cont'>
<div id='head'>
<div>Head</div>
</div>
<div id='body'>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我希望主体只展开以便它适合父级(包括填充),然后在必要时应用滚动条.
如示例所示,我已尝试过overflow-y: auto,但这并不像我预期的那样有效.
编辑:我希望滚动条仅显示在正文上,以便头部和父底部填充始终可见.
Sti*_*ers 12
您只需将容器设置为flexbox即可.
#cont {
padding: 5px;
background-color: red;
max-height: 150px;
max-width: 50%;
display: flex; /*added*/
flex-direction: column; /*added*/
}
Run Code Online (Sandbox Code Playgroud)
#cont {
padding: 5px;
background-color: red;
max-height: 150px;
max-width: 50%;
display: flex; /*added*/
flex-direction: column; /*added*/
}
#body {
background-color: blue;
overflow-y: auto;
overflow-x: hidden;
flex: 1; /* added */
}
#head {
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div id='cont'>
<div id='head'>
<div>Head</div>
</div>
<div id='body'>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
另一个选择是使用CSS表,需要一些额外的HTML代码.并且max-height不适用于表格布局,因此请height改用.
#cont {
padding: 5px;
background-color: red;
height: 150px;
width: 50%;
display: table;
}
#head,
#body {
display: table-row;
}
#head > div,
#body > div {
display: table-cell;
position: relative;
}
#body > div {
height: 100%;
}
#body > div > div {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
overflow-y: auto;
overflow-x: hidden;
}
#body {
background-color: blue;
overflow-y: auto;
overflow-x: hidden;
}
#head {
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div id='cont'>
<div id='head'>
<div>Head</div>
</div>
<div id='body'>
<div>
<div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
<div>Body</div>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
小智 7
这个解决方案对我有用,它仅在子 div 中显示垂直滚动条。
.parent
{
height : 300px ; //for example
overflow: hidden;
}
.child
{
max-height: 100%;
overflow-y: scroll;
}
Run Code Online (Sandbox Code Playgroud)