有一报表,8列,第1-3列是文字说明,其中1、2列中有些单元格是合并的,有的是用 colspan="2",有的是用 rowspan="n"。中国式报表嘛,都差不多是这个样子。第4-8列是数字。
现在要求1-3列文字居中对齐,4-8列的数字右对齐。
要求很简单,我开始也这么以为.......
首先是用 <col> 来控制对齐,很简单,但只在IE6下可用,无论是在 col 标签里写 align="center" 还是写 style="text-align:center"都一样,在IE7及以上版本和其它内核浏览器中无效,统统都是默认的左对齐。
再用纯CSS控制:
td{text-align:center;}
tbody>tr>td:nth-child(n+3){text-align:right;}
这样看似可以,不过只能用在没有合并单元格的表格里。我现在的第1、2列有的是合并的,于是上面的 n+3 的计算结果就有问题了。看来CSS只是从 HTML 代码里面 TD 标签的数量来计算的,也就是说,不管你 TD 合并了几个,都只按一个算。
这样一来,结果就比较混乱了,同一列,有的居中,有的居右。
还有一个办法,就是每个 TD 里面加 class 属性,而最不想用的就是这个办法。不仅多了大量的代码,而且以后想改变某列的对齐方式的话,还要改大量的代码。
请教大家有没有其它好的方法。