2011-03-24 17 views
0

Terr!如何僅爲具有HTML :: Table的數據行設置列類?

HTML::Table具有相當良好的柔韌性,形成從Perl數據結構的HTML表格,但我沒有找到正確的路怎麼有th標籤都有效比在同一列普通細胞(td)不同。或者讓我改述一下:如果我設置了列類,我想只將它設置爲數據行,而不是標題行。

use strict; 
use warnings; 
use HTML::Table; 

my $table = new HTML::Table(
       -head=> ['one', 'two', 'eleven'], 
       -data=> [ ['yki', 'kaki', 'kommi'], 
         ['yy', 'kaa', 'koo'] ] 
); 

$table->setColClass(1, 'class'); 
$table->setSectionColClass('tbody', 0, 2, 'class2'); 
print $table; 

和輸出是:

<table> 
<tbody> 
<tr><th class="class">one</th><th class="class2">two</th><th>eleven</th></tr> 
<tr><td class="class">yki</td><td class="class2">kaki</td><td>kommi</td></tr> 
<tr><td class="class">yy</td><td class="class2">kaa</td><td>koo</td></tr> 
</tbody> 
</table> 

輸出I在尋找:

<table> 
<tbody> 
<tr><th>one</th><th>two</th><th>eleven</th></tr> 
<tr><td class="class">yki</td><td class="class2">kaki</td><td>kommi</td></tr> 
<tr><td class="class">yy</td><td class="class2">kaa</td><td>koo</td></tr> 
</tbody> 
</table> 

有部分級別的方法,但th也屬於在tbody。表格可能相當複雜,所以我想避免重複標題行,並希望找到一個體面的方式。在那兒?

回答

0

可能很簡單,只需稍微調整CSS就可以了。想必你在你的樣式表是這樣的:

.class { /* Some pretty stuff */ } 

所以只是改變了選擇器調節頭和身體的細胞是如何風格:

td.class { /* The styles you want applied to body cells go here. */ } 
th.class { /* And the styles for header cells (if any) go here. */ } 

如果你不想適用於任何風格然後標題單元格將td.class { }位包含在樣式表中,並將th.class { }取出;將CSS類附加到與樣式表中任何內容都不匹配的元素上沒有任何問題。

+0

所以我現在要做,但我想使用更優雅的解決方案。如果我不在'th'上使用class-attribute,我也想避免它。這就是爲什麼我沒有標記爲HTML或CSS;) – 2011-03-24 02:59:00

+0

我實際上調用CSS方法一個優雅的解決方案。但一個人的優雅的解決方案是另一個人的黑客:) – 2011-03-24 04:18:29

相關問題