有一个高度自适应的 div,里面有两个 div,一个高度 100px,希望另一个填满剩下的高度。
(1)绝对定位法
外层 div 使用 position: relative;高度要求自适应的 div 使用:
.fill {
position: absolute;
top: 100px;
bottom: 0;
left: 0;
right: 0;
}
(2)flex 布局(推荐)
.wrapper { display: flex; flex-direction: column; }
.fixed { height: 100px; }
.fill { flex: 1; }
补充:
- 还有一种经典做法是父容器用
display: table(高度自适应)+display: table-row,子项高度填满用height: 100%配合display: table-cell,但现代项目已基本被 flex 替代。- 还可以用 CSS Grid:
一行代码就解决。.wrapper { display: grid; grid-template-rows: 100px 1fr; }- 注意 flex 方案的
flex: 1等价于flex-grow: 1; flex-shrink: 1; flex-basis: 0%,相当于"占满剩余空间",而不是100%。



