滚动包含溢出内容的flexbox

以下是我用来实现上述布局的代码:

.header{
高度:50px;
}
.身体{
位置:绝对位置;
顶部:50px;
右:0;
底部:0;
左:0;
显示器:flex;
}
.侧边栏{
宽度:140px;
}
梅因先生{
弹性:1;
显示器:flex;
弯曲方向:立柱;
}
.内容{
弹性:1;
显示器:flex;
}
.栏目{
填充:20px;
右边框:1px实心#999;
}
<div class=“header”>主收割台&lt/部门>
<div class=“body”>
<div class=“侧栏”>边栏&lt/部门>
<div class=“main”>
<div class=“页眉”>页眉。内容列如下所示。&lt/部门>
<div class=“content”>
<div class=“column”>第1栏&lt/部门>
<div class=“column”>第1栏&lt/部门>
<div class=“column”>第1栏&lt/部门>
&lt/部门>
&lt/部门>
&lt/部门&gt

我省略了用于样式设置的代码。你可以在钢笔里看到所有的东西


上述方法有效,但当内容区域的内容溢出时,会使整个页面滚动。我只希望内容区域本身滚动,因此我将overflow:auto添加到contentdiv

现在的问题是,柱本身并没有超出其父高度,因此边界也在那里被切断

这是显示滚动问题的笔

如何将内容区域设置为独立滚动,同时其子项仍延伸到内容框的高度之外?

我已经和Tab Atkins(flexbox规范的作者)谈过这个问题,这就是我们提出的:

HTML:

<div class=“content”>
<div class=“box”>
<div class=“column”>第1栏&lt/部门>
<div class=“column”>第2栏&lt/部门>
<div class=“column”>第3栏&lt/部门>
&lt/部门>
&lt/部门>

CSS:

.content{
弹性:1;
显示器:flex;
溢出:自动;
}
.盒子{
显示器:flex;
最小高度:最小内容;/*需要供应商前缀*/
}

这些是钢笔:

  1. 短柱被拉伸
  2. 较长的列溢出和滚动

之所以这样做,是因为align items:stretch在项目具有固有高度时不会收缩项目,这是通过min content实现的

发表评论