我在Vue v2中使用Bootstrap Vue表,目前我使用prop(sticky-header="600px"
)来设置表的高度:
<page-wrapper>
<page-header> </page-header>
<div class="content">
<b-card>
<b-row>
<b-col></b-col>
<b-col>
<b-form-group>
<b-form-radio-group></b-form-radio-group>
</b-form-group>
</b-col>
<b-col></b-col>
</b-row>
<div class="table-responsive">
<b-table-simple class="text-left border-left multiple-headers" small sticky-header="600px" bordered no-border-collapse>
<b-thead head-variant="light">
<b-tr>
<b-th></b-th>
</b-tr>
<b-tr>
<b-th></b-th>
</b-tr>
</b-thead>
<b-tbody>
<b-tr>
<b-td> </b-td>
</b-tr>
</b-tbody>
</b-table-simple>
</div>
</b-overlay>
</b-card>
</div>
</page-wrapper>
但它看起来不适合更大的屏幕,因为底部有很多间距,这就是为什么我想把table高度设置为与屏幕高度相关。对于所有屏幕尺寸,测量表体外部(上下)应该有多少空间,然后使用calc(100 vh- XXpx)的最佳方法是什么?
2条答案
按热度按时间p4rjhz4m1#
在你的组件中,你可以根据屏幕高度和你想要计算的任何额外空间来计算高度,通过使用JS和为
.table-container
添加样式来确保它采用完整的计算高度。通过这样做,每当窗口调整大小时,表格将根据屏幕高度呈现动态高度,并且
dynamicTableHeight
属性将相应地更新。根据您的首选设计,更改additionalSpace
值。overflow: auto;
CSS规则可用于在表格内容超过估计高度时添加滚动条。它是可选的。gwbalxhn2#
我找到了一个适合我的解决方案。我得到页面上元素的高度(除了表格),然后对它们的大小求和,并使用这个数据变量从100vh中减去它:
模板:
脚本: