You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bokeh表格:水平滚动条遮挡最后一行问题求助

解决Bokeh表格水平滚动条遮挡最后一行的问题

我之前也碰到过一模一样的情况,确实闹心——滚动条死死挡着最后一行内容,垂直滚动条还拉不下去。下面给你两个实用的解决方案,你可以根据自己的需求选:

方法一:直接移除水平滚动条

如果你的表格内容宽度其实可以适配容器,没必要留着水平滚动条的话,试试这两种方式:

  1. 让表格自动适配内容宽度
    可以设置fit_columns=True让Bokeh自动调整列宽,或者手动指定足够的width值,让内容完全显示不触发水平滚动。示例代码:

    from bokeh.models import DataTable, ColumnDataSource, TableColumn
    
    source = ColumnDataSource(data=dict(numbers=[1,2,3,4], texts=["foo","bar","baz","qux"]))
    columns = [TableColumn(field="numbers", title="数字列"), TableColumn(field="texts", title="文本列")]
    data_table = DataTable(source=source, columns=columns, width=700, fit_columns=True)
    
  2. 用自定义CSS隐藏滚动条
    如果自动调整宽度行不通,就给表格加个自定义CSS类来隐藏水平滚动条:

    # 给表格绑定自定义样式类
    data_table.css_classes = ["hide-horizontal-scroll"]
    

    然后在你的HTML模板或者通过Bokeh的curdoc()添加样式:

    .hide-horizontal-scroll .bk-slick-viewport {
        overflow-x: hidden !important;
    }
    

方法二:下移滚动条,避开内容区域

如果必须保留水平滚动条,那我们可以给表格内容区加底部内边距,把滚动条“挤”到内容下面:

.bk-slick-viewport {
    padding-bottom: 22px !important; /* 数值可以根据滚动条实际高度调整 */
}

要是想只给特定表格生效,就先给表格加自定义类:

data_table.css_classes = ["scroll-below-content"]

再对应写CSS:

.scroll-below-content .bk-slick-viewport {
    padding-bottom: 25px;
    overflow-x: auto;
}
/* 抵消padding带来的额外高度,避免表格整体变高 */
.scroll-below-content .bk-slick-list {
    margin-bottom: -25px;
}

这样设置后,滚动条会在最后一行内容下方显示,不会再遮挡,同时表格整体高度也不会被额外的padding撑大。

另外别忘了检查表格的height属性,如果设置的高度刚好卡到最后一行,也会导致没法滚动到底,适当调大一点高度也能缓解这个问题。

内容的提问来源于stack exchange,提问作者Martin Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:37:22