2010-06-09 57 views
2

我有一个如下表。想象一下有多列,我想通过格式化<col/>标签,我可以改变该列中每个<td>的格式。我想给第一栏中的数据一个text-align:center,但它似乎不工作。除了向每个<td>增加一个班级之外,有没有办法让这个工作起作用?格式化HTML表格列中的文本?

<table> 
    <col class="column"/> 
    <tr> 
     ... 
    </tr> 
    <tr> 
     ... 
    </tr> 
    <tr> 
     ... 
    </tr> 
</table> 

回答

1

为表格创建一个类, <table class="table1">。然后,在您的CSS中,您可以参考像这样的单元格:

.table1 tr>td:first-child { text-align:center; } 
+0

是的,不会只是第一次。 只需使用CSS选择器来获取每个tr的第一个孩子td? – RPM1984 2010-06-09 00:25:06

+0

好点。我编辑了片段。 – Antony 2010-06-09 00:29:22

+1

这不适用于IE <= 6,因为['>'combinator](http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx#combinators),特别是在这个宏伟的版本7之前不支持[':first-child'伪类](http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx#pseudoclasses)程序。 – 2010-06-09 01:41:01

0

该类涵盖了与其绑定的标记。既然你在做任何事之前关闭了标签,这个类并不会影响任何东西。 像其他人说的那样,把它放在桌子上,桌子上横跨所有的tds。

0

无法在所有常见浏览器中使用此工具,但是您可以使用现代CSS选择器以标准(如果未完全实现)方式达到效果。

tr:nth-child(1) { styles } 

其中1是第一列。

更普遍地看到http://www.w3.org/TR/css3-selectors/#nth-child-pseudo

常见的解决办法是增加每个“TD”这通常是一个非问题,因为你通常从其他代码生成HTML类。我从来没有见过以前参考过的col类,所以做了快速搜索,看来a)它应该在colgroup标记中,b)它可以设置的样式有限。

+1

这只适用于支持此CSS 3功能的浏览器。你宁愿使用'td:first-child',这是一个CSS 2.1特性*和*在IE> = 7中可用。 – 2010-06-09 01:47:51

+0

如果第一个孩子是他想要的(他说特定的列不是第一列)。除非我拥有对浏览器或javascript启用状态的控制,否则我不认为我会在每个td上使用除课程之外的任何解决方案。 – 2010-06-09 02:22:48

+0

啊,我看到他只提到第一列 - 我发誓它之前要求给定列 – 2010-06-09 07:36:58

0

非CSS的方法是简单地将align =“center”添加到相应列的td中。这是Dreamweaver节省开发时间的一种方法:选择整个列,输入中心进行对齐并完成。