如何仅为HTML :: Table的数据行设置列类?

时间:2011-03-24 00:46:28

标签: html css perl

TERR!

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>

输出我正在寻找:

<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。表可能相当复杂,所以我想避免迭代标题行并希望找到一个体面的方法。有吗?

1 个答案:

答案 0 :(得分: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类附加到与样式表中的任何内容都不匹配的元素上没有任何问题。