【发布时间】:2023-03-28 06:03:01
【问题描述】:
我正在使用 vue-grid-layout,它提供了 x 个 div。每个 div 都可以通过拖动其右下角的图标来调整大小。
我正在尝试将 div 拆分为 3 个逻辑部分。我想拥有
- 固定高度的顶部,
- 一个可变的中间部分,和
- 固定高度的底部
我无法将中间部分包含在它自己的空间中。无论我做什么,它似乎都会溢出。向中间 div 的样式添加 overflow:auto 和 height:calc(100%-topHeight+bottomHeight) 似乎没有按预期工作。作为额外的奖励,我不确定我是否知道父 div 的高度,因为它们可以调整大小并根据 grid-layout/grid-item 组件计算得出。
我在下面的小提琴中有一个演示 https://jsfiddle.net/uglyhobbitfeet/gs2qf3t6/1/
下面是我要开始工作的主要代码块。
' <v-layout secondary>',
' <v-flex xs12>',
' <div style="height:25px;background-color:green">TOP</div>',
' </v-flex>',
' <v-flex xs12 style="height:calc(100%-50px);overflow:auto;">',
' <div style="height:125px;background-color:blue">MIDDLE</div>',
' </v-flex>',
' <v-flex xs12>',
' <div style="height:25px;background-color:red">BOTTOM</div>',
' </v-flex>',
' </v-layout>',
【问题讨论】:
-
你的小提琴有错误。您需要在计算中添加空格:
height: calc(100% - 50px);我建议将 flex 添加到 v-layout:display: flex; flex-direction: column; height: 100%; -
嗨,差不多了,但仍有一些问题。我希望前 3 个框有滚动条,最后一个框缩小,所以没有灰色空间。更新示例在这里jsfiddle.net/uglyhobbitfeet/gs2qf3t6/2