2013-07-27 74 views
3

我有一個包含大量行的html表,當我嘗試打印它時,TFOOT中的內容顯示在每個分頁符中。我可以讓它只顯示在最後一頁的表格末尾嗎?如何使TFOOT只顯示在表的末尾

注意:我無法從表中移除tfoot,因爲表格是從我使用的yii框架的CGridView輸出的。

回答

2

恐怕除了使用腳本以外無法完成。默認情況下,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]; 
+0

'tbl.tFoot'是'gEBTN'較短替代的第一行, – Dennis

相關問題