Javascript 在最近的浏览器中,flexbox层次结构中的Datatables响应溢出 问题
我们使用Datatables响应在引导单元格中显示一个表。它很好用。至少,我们这么认为,但最近发现,在后来的浏览器中,表在很大程度上溢出了屏幕 关于溢出:一些列被折叠,但显然不够。我们有一些较旧版本的代码,当我们下降到阈值以下时(远远超过它应该达到的阈值),列被隐藏。现在已经不是这样了,但是我们有一些根本性的改变(在样式表和JavaScript中),代码比较从窗口中消失了 准确地说:Javascript 在最近的浏览器中,flexbox层次结构中的Datatables响应溢出 问题,javascript,css,datatables,responsive,Javascript,Css,Datatables,Responsive,我们使用Datatables响应在引导单元格中显示一个表。它很好用。至少,我们这么认为,但最近发现,在后来的浏览器中,表在很大程度上溢出了屏幕 关于溢出:一些列被折叠,但显然不够。我们有一些较旧版本的代码,当我们下降到阈值以下时(远远超过它应该达到的阈值),列被隐藏。现在已经不是这样了,但是我们有一些根本性的改变(在样式表和JavaScript中),代码比较从窗口中消失了 准确地说: 很好 铬47 IE11 溢出 铬52 铬54 FirefoxESR 47和52 我们处于一个公司环境
- 很好
- 铬47
- IE11
- 溢出
- 铬52
- 铬54
- FirefoxESR 47和52
div.table-responsive
不起作用,而且我已经有了viewport
),我浏览了Datatables API并修改了一些我们尚未设置的选项(例如autoWidth)
我没有注意到有趣的变化
听
我在Datatables事件上添加了一些侦听器。无论响应是否有效,都会被触发。然而,在更现代的浏览器中,情况并非如此
检查Chrome的变更日志
我试过了,但只找到了一个安全修复的列表。这不是我需要的
接下来呢?
我不知道如何解决这个问题。即使我没有找到解决方案,新的调查线索也会很好
[编辑2017-10-06]线索
我仍在调查,但在DOM中移动表时,我发现哪个元素是第一个显示问题的。它有一个显示:flex;弹性:10自动代码>样式。移除它修复了问题
我现在必须研究完整的DOM树,但恐怕这与flexbox有关。似乎支持这一点,但建议的解决方案(添加溢出:隐藏到表的父级)对我来说不起作用。继续我的搜索。flexbox
显示样式可能会破坏jQuery数据表呈现。您必须检查所有具有display:flex
属性的父容器,并逐个临时禁用display类型,以查找导致此问题的容器
我认为flex-shrink:1
可能是您的问题的原因。将溢出:隐藏
添加到DOM层次结构中最接近的flex元素,它应该可以解决添加最小宽度:0代码>到我的网站的内容类为我解决了这个问题
我从这里得到的:
我们确实在flex层次结构中遇到了问题,我必须更新远程父级上的flexbox属性。
<div id="some-ancestor-with-flexbox-styling">
<div class="row">
<div class="col-xs-12">
<table id="my-table" style="width: 100%"></table>
</div>
</div>
</div>
$table.DataTable({
language: {emptyTable: this.i18n.no_data},
data: content,
columns: columns,
responsive: true
});