如何控制表格中列的对齐方式?(不在TD中用Class,不用COL)

Triumph 2011-10-07 09:58:02
有一报表,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 属性,而最不想用的就是这个办法。不仅多了大量的代码,而且以后想改变某列的对齐方式的话,还要改大量的代码。



请教大家有没有其它好的方法。
...全文
499 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongxinping1234 2011-10-14
  • 打赏
  • 举报
回复
简单,给要右边对齐的td添加个样式 .td_right

然后些个样式

td.td_right{text-align:right;}
zkbao 2011-10-14
  • 打赏
  • 举报
回复
我试了一下,应该可以,至少比你一个个td加类来得方便,不过代码中多了不少div
zkbao 2011-10-14
  • 打赏
  • 举报
回复
要不每个td里你加个div,要同样对齐的的td都叫同一个id名字的div,然后统一写个样式就行了。以后如果某个单元格要改对齐方式 ,你就把他所在的div 改名字就行了如:divCenter改成divLeft,如:
<style>
#divCenter { text-algin:center}
#divLeft { text-algin:left}
</style>

<table width="600px" border="1">
<tr>
<td width="63" rowspan="3"><div id="divCenter">1</div></td>
<td width="63"><div id="divLeft">2</div></td>
....
</tr>
<tr>
<td width="63" rowspan="3"><div id="divCenter">1</div></td>
<td width="63"><div id="divLeft">2</div></td>
....
</tr>



</table>

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧