我有一个包含大量行的 html 表,当我尝试打印它时,TFOOT 中的内容显示在每个分页符中。我可以让它只显示在最后一页表格的末尾吗?
注意:我无法从表中删除 tfoot,因为该表是从我正在使用的 yii 框架的 CGridView 输出的。
我担心除了脚本之外它无法完成。默认情况下,该tfoot元素具有display: table-footer-group,这意味着它出现在表的任何其他行之后,并且可以在每个页面的末尾重复(如果浏览器想要这样做)。在当前的 CSS 中你无法将这两件事分开。
如果设置tfoot { display: table-row-group },则\xe2\x80\x99t 不会重复,但它不会\xe2\x80\x99t 出现在表格的末尾,但与 HTML 源代码中的位置相同,这意味着它位于开头,位于正常行之前,采用 HTML 4 语法。I\xe2\x80\x99m 假设 HTML 代码中存在 \xe2\x80\x99,并且您无法更改它。(实际上tfoot可以放在表格标记的最后,HTML5 允许这样做。)
您可以通过设置完全摆脱页脚tfoot { display: none },但我认为您不希望这样做。
如果此处可以使用客户端脚本,那么您可以将其设置display为table-row-group与仅移动tfoot表中最后一个元素的代码一起使用。假设table元素有id,例如id=tbl,您可以使用以下脚本(也设置display):
var tbl = document.getElementById(\'tbl\');\nvar foot = tbl.getElementsByTagName(\'tfoot\')[0];\nfoot.style.display = \'table-row-group\';\ntbl.removeChild(foot);\ntbl.appendChild(foot);\nRun Code Online (Sandbox Code Playgroud)\n\n如果该table元素缺少id,则需要根据页面的结构采用某种不同的方式在 JavaScript 中查找该元素。如果它是那里唯一的或第一个table元素,您可以将上面的第一行替换为
var tbl = document.getElementsByTagName(\'table\')[0];\nRun Code Online (Sandbox Code Playgroud)\n