DataTables 固定标题与宽表中的列未对齐

2024-04-04

Problem

当使用sScrollX, sScrollXInner and/or sScrollY为了实现内部内容滚动的固定标题表格,在 Chrome 和 IE 中,表格的标题与正文的其余部分不对齐。另一方面,Firefox 可以完美地显示它们。

据我所知,使用 1.9.4 版本时,只有当存在大量宽度波动的数据,并且单词非常长/无法包装在与小单词相同的列中时,才会出现此问题。此外,所讨论的表需要相当宽。

所有这些因素都在此得到了体现fiddle http://jsfiddle.net/pratik136/etL73/embedded/result/:

Output

Chrome:
Chrome Screenshot

IE:
IE9 Screenshot

Firefox
Firefox Screenshot

建议的解决方案

这些解决方案之前已经提出过,但没有效果关于我的实施。由于其中一些建议,我设置了一个干净的普通演示,因为我想确保没有其他代码促成此效果。

  • 关闭/删除我所有的CSS
  • setTimeout( function () { oTable.fnAdjustColumnSizing(); }, 10 );
  • calling oTable.fnFilter( "x",0 ) and oTable.fnFilter( "",0 )以该顺序
  • "sScrollXInner": "100%"
  • 摆脱所有宽度

我发现的解决标题未对齐的唯一解决方案是取出sScrollX and sScrollY,但这不能算作解决方案,因为您失去了固定标题/内部内容滚动功能。遗憾的是,这只是暂时的黑客攻击,而不是修复!

Note

编辑/播放最新的fiddle http://jsfiddle.net/pratik136/etL73.

我尝试了各种组合,可以通过使用链接在小提琴的修订历史记录中观察到这些组合http://jsfiddle.net/pratik136/etL73/#REV# where 1 <= #REV# <= 12

History

StackO
这个问题之前已经被问过:jQuery 数据表标题与垂直滚动不对齐 https://stackoverflow.com/questions/8607290/jquery-datatables-header-misaligned-with-vertical-scrolling
但最重要的区别是,该问题的OP提到,如果删除所有CSS,他们就能够解决问题,这对我来说是不正确的,并且我尝试了一些排列,因此认为这个问题值得重新发布。

External
DataTables 论坛上也标记了此问题:

  • http://datatables.net/forums/discussion/7395/sscrolly-and-sscrollx-broken/p1 http://datatables.net/forums/discussion/7395/sscrolly-and-sscrollx-broken/p1
  • http://datatables.net/forums/discussion/7778/vertical-scrolling-messes-up-column-header-alignment#Item_1 http://datatables.net/forums/discussion/7778/vertical-scrolling-messes-up-column-header-alignment#Item_1
  • http://datatables.net/forums/discussion/3835/width-columns-problem-in-chrome-safari/p1 http://datatables.net/forums/discussion/3835/width-columns-problem-in-chrome-safari/p1
  • 我的错误报告:http://datatables.net/forums/discussion/12491/datatables-header-alignment-issue-refresh#Item_1 http://datatables.net/forums/discussion/12491/datatables-header-alignment-issue-refresh#Item_1

这个问题快把我逼疯了!请贡献您的想法!


编辑: 查看最新Fiddle http://jsfiddle.net/ruslans_uralovs/zDaGk/使用“固定标题”:


The Fiddle http://jsfiddle.net/hDgHs/.

解决方案之一是自己实现滚动,而不是让 DataTables 插件为您实现。

我采用了您的示例并注释掉了 sScrollX 选项。当此选项不存在时,DataTables 插件将简单地将您的表按原样放入容器 div 中。该表将伸出屏幕,因此,为了解决这个问题,我们可以将其放入具有所需宽度和溢出属性集的 div 中 - 这正是最后一个 jQuery 语句的作用 - 它将现有表包装到 300px 宽的 div 中。您可能根本不需要设置环绕 div 的宽度(在本例中为 300px),我在这里设置了它,以便可以轻松看到剪切效果。 友善一点,不要忘记用类替换内联样式。

$(document).ready(function() {
var stdTable1 = $(".standard-grid1").dataTable({
    "iDisplayLength": -1,
    "bPaginate": true,
    "iCookieDuration": 60,
    "bStateSave": false,
    "bAutoWidth": false,
    //true
    "bScrollAutoCss": true,
    "bProcessing": true,
    "bRetrieve": true,
    "bJQueryUI": true,
    //"sDom": 't',
    "sDom": '<"H"CTrf>t<"F"lip>',
    "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
    //"sScrollY": "500px",
    //"sScrollX": "100%",
    "sScrollXInner": "110%",
    "fnInitComplete": function() {
        this.css("visibility", "visible");
    }
});

var tableId = 'PeopleIndexTable';
$('<div style="width: 300px; overflow: auto"></div>').append($('#' + tableId)).insertAfter($('#' + tableId + '_wrapper div').first())});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataTables 固定标题与宽表中的列未对齐 的相关文章

随机推荐

  • 如何将 TLD 和 Tag Lib 文件添加到 Maven 的 jar 项目中

    我有一个 Maven 项目 打包为jar 我还有一个 Maven 项目 打包为war 这个 war 项目有一个 tld 文件和一些 xhtml 文件 标签库 战争项目的结构 基本上 是 pom xml src main java webap
  • Angular7 中的来源“http://localhost:4200”已被 CORS 策略阻止

    我想使用http 5 160 2 148 8091 api trainTicketing city findAll http 5 160 2 148 8091 api trainTicketing city findAll在我的角度项目中休
  • 如何检测首选项是否发生更改?

    我有一个类扩展 PreferenceActivity 并显示我的应用程序的首选项屏幕 是否可以检查首选项是否有任何更改 这有助于 http developer android com reference android content Sh
  • 连接到 localhost:6379 时出现错误 99。无法分配请求的地址

    设置 我有一个虚拟机 并在虚拟机中运行三个容器 一个 nginx 代理 一个非常简约的 Flask 应用程序和 redis Flask 应在端口 5000 上提供服务 而 redis 应在 6379 上提供服务 这些容器中的每一个都可以作为
  • JQuery 中类似 C# 的 String.Format() 函数? [复制]

    这个问题在这里已经有答案了 是否可以在 JQuery 中调用类似 C 的 String Format 函数 相当于 JQuery 中的 String format https stackoverflow com questions 1038
  • 如何在tmux中获取send-keys的结果?

    我正在使用 tmux 来运行服务器控制台 要检查控制台是否正在应答 我想使用send keys在控制台上运行命令 tmux send keys t mysess mywin show info Enter 实际上 我目前正在将完整的控制台输
  • Django 开发服务器 CPU 密集型 - 如何分析?

    我注意到本地 windows7 机器上的 django 开发服务器 版本 1 1 1 正在使用大量 CPU 根据任务管理器的 python exe 条目 约为 30 即使处于空闲状态 即没有请求到来进 出 是否有一种既定的方法来分析可能造成
  • Magento 图片上传表单字段

    我跟着这个链接 http www magentocommerce com wiki 5 modules and development admin how to create pdf upload in backend for own mo
  • SQL Server 更新触发器,仅获取修改的字段

    我知道COLUMNS UPDATED 好吧 我需要一些快速的捷径 如果有人做了 我已经在做了 但如果有人可以节省我的时间 我会感激的 我基本上需要一个仅包含更新的列值的 XML 我需要它用于复制目的 SELECT FROM Insert 为
  • Jenkins 未识别 Maven

    我在Windows 8上安装了Tomcat 7 上面部署了Jenkins 我在 Jenkin 设置中配置了 JDK Ant 和 Maven 在 Maven 部分 我将名称命名为 LocalMaven 将 MAVEN HOME 命名为C Te
  • Postgres 正则表达式 负向前瞻

    场景 匹配除字符串 J01FA09 之外的任何以 J01 开头的字符串 我很困惑为什么以下代码不返回任何内容 SELECT 1 WHERE J01 FA09 J01FA10 当我能看到regexr com https regex101 co
  • fft 和小波

    我可以使用 fft 获取加载的 1 秒音频文件的频率 相位和幅度 并重新创建它 我现在想做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置 并将数据放入数组中 示例 100hz 从 0 23 秒到 0 34 秒开始 104 34hz
  • 如何修复双编码 UTF8 字符(在 utf-8 表中)

    以前的一个LOAD DATA INFILE运行时假设 CSV 文件是latin1 编码 在此导入过程中 多字节字符被解释为两个单字符 然后 再次 使用 utf 8 进行编码 这种双重编码产生了异常 例如 代替 如何纠正这些字符串 以下 My
  • 在电子中创建多个预加载文件(每页一个)

    我正在创建我的第一个 Electron 应用程序 并且完成了表单的第一页 现在这个应用程序不是 SPA 所以我有大约 3 4 个不同的页面 并且页面通向另一个页面 为了允许正确的代码组织 我想为每个面向客户端的页面保留一个单独的预加载文件
  • 如何设置 NHibernate 事务的超时

    我需要在单个事务中完成大量数据库处理 包括使用 NHibernate 的一些处理 为了使所有内容在同一个事务中工作 我使用 NHibernate 的 Session 来启动它 并在其中登记其他工作的命令 一切都很顺利 直到我承诺为止 那时我
  • 停止无限循环中的delphi程序

    当 Delphi 中发生无限循环时 当我按下停止按钮时 调试器甚至不会给我堆栈跟踪 如果我怀疑程序在哪里停止 我可以放置一个断点 如果这是正确的无限循环 它将停止 下面是一个故意造成无限循环的示例程序 procedure TForm1 bt
  • Android 中的最大 BackStack 大小

    我是android开发的新手 我需要知道最大内存大小 of 后台堆栈 in android我想知道有多少活动 of 安卓应用 can be 存储在 BackStack 中 Thanks 后台堆栈的最大内存大小与设备上的可用内存量相同 您可以
  • 有 F#(或 C#)中的 R 树实现吗? [复制]

    这个问题在这里已经有答案了 可能的重复 是否有任何记录在案的 NET 的免费 R Tree 实现 https stackoverflow com questions 2041834 is there any documented free
  • 多行组并使用正则表达式进行搜索

    好的 正则表达式向导 我希望能够搜索我的日志文件并找到其中包含 错误 一词的任何会话 然后返回整个会话日志条目 我知道我可以使用字符串 数组来做到这一点 但我想学习如何使用正则表达式来做到这一点 但这就是问题 如果我决定使用正则表达式来做到
  • DataTables 固定标题与宽表中的列未对齐

    Problem 当使用sScrollX sScrollXInner and or sScrollY为了实现内部内容滚动的固定标题表格 在 Chrome 和 IE 中 表格的标题与正文的其余部分不对齐 另一方面 Firefox 可以完美地显示