我有一個包含大量行的html表,當我嘗試打印它時,TFOOT中的內容顯示在每個分頁符中。我可以讓它只顯示在最後一頁的表格末尾嗎?如何使TFOOT只顯示在表的末尾
注意:我無法從表中移除tfoot,因爲表格是從我使用的yii框架的CGridView輸出的。
我有一個包含大量行的html表,當我嘗試打印它時,TFOOT中的內容顯示在每個分頁符中。我可以讓它只顯示在最後一頁的表格末尾嗎?如何使TFOOT只顯示在表的末尾
注意:我無法從表中移除tfoot,因爲表格是從我使用的yii框架的CGridView輸出的。
恐怕除了使用腳本以外無法完成。默認情況下,tfoot
元素具有display: table-footer-group
,這意味着它在表格和的任何其他行可能會在每個頁面的末尾重複出現(如果瀏覽器想要這樣做)。你不能在當前的CSS中分離這兩件事。
如果你設置了tfoot { display: table-row-group }
,它不會被重複,但它不會出現在表的末尾,而是出現在HTML源代碼的相同位置,這意味着它在開始之前,在正常之前行,按HTML 4語法。我假設它在HTML代碼中,你不能改變它。 (實際上tfoot
可以放在表格標記中,而HTML5允許這樣做。)
您可以通過設置tfoot { display: none }
來完全清除頁腳,但我認爲您不需要這樣做。
如果客戶端腳本可以在這裏使用,那麼您可以將display
設置爲table-row-group
以及簡單地將tfoot
元素最後一個在表格中移動的代碼。假設table
元素有id
,說id=tbl
,您可以使用下面的腳本(這還設置display
):
var tbl = document.getElementById('tbl');
var foot = tbl.getElementsByTagName('tfoot')[0];
foot.style.display = 'table-row-group';
tbl.removeChild(foot);
tbl.appendChild(foot);
如果table
元素缺乏id
,你需要一些不同的方式來查找JavaScript中的元素,這取決於在頁面的結構上。如果它是唯一的,或者第一,table
元件有,可以代替上述由
var tbl = document.getElementsByTagName('table')[0];
'tbl.tFoot'是'gEBTN'較短替代的第一行, – Dennis