如何在Bootstrap React的Table组件中设置height和overflow属性?
解决方案
问题原因
原生<table>元素默认display: table,overflow属性对这类表格布局元素不生效,你直接给Table组件设置高度、溢出属性自然不会起作用。
可用解决方法
方法1:外层包裹容器(最推荐,无副作用)
给Table组件外层套一个块级容器(比如div),把高度、溢出属性写在这个容器上即可,示例代码:
<div style={{ maxHeight: "90vh", overflow: "auto" }}> <Table striped bordered hover variant="dark" className="table" > {/* 表格内容 */} </Table> </div>这个方案不需要修改Table本身的样式,不会破坏Bootstrap表格原生的布局适配,也不会出现列宽错位的问题。
方法2:修改Table的display属性
如果你不想加外层容器,可以给Table添加
display: block属性后再设置高度和溢出:<Table striped bordered hover variant="dark" className="table" style={{ display: "block", maxHeight: "90vh", overflow: "auto" }} >如果需要固定表头不随内容滚动,还要额外配置thead、tbody的样式:
.table thead tr { display: table; width: 100%; table-layout: fixed; } .table tbody { display: block; max-height: 90vh; overflow: auto; } .table tbody tr { display: table; width: 100%; table-layout: fixed; }注意:这个方案需要手动统一表头、内容的列宽,否则会出现列错位的问题。
CSS样式不生效排查
如果你用自定义className设置样式不生效,大概率是Bootstrap默认样式优先级更高导致被覆盖,可以给选择器增加权重,比如给外层加自定义类名:
.my-table-wrapper .table { /* 你的自定义样式 */ }不推荐直接加
!important来提升优先级。
内容的提问来源于stack exchange,提问作者Aviral
相关产品推荐
相关产品推荐

