2012-01-02 32 views
1

我在1 tr内有n个数量的tds。我希望在桌子的顶部有一个横跨所有n个tds的位置。这可以做到吗?如何获得多个tds的一个?

<table> 
    <th>Header</th> 
    <tr> 
    <td> 1/n </td><td> 2/n </td><td >3/n </td>... 
    </tr> 
</table> 

回答

2

可以使用colspan属性上table cells定义。请注意,th也应嵌套在tr中。

<table> 
    <tr> 
    <th colspan="n">Header</th> 
    </tr> 
    <tr> 
    <td> 1/n </td><td> 2/n </td><td >3/n </td>... 
    </tr> 
</table> 
+0

这实际上是我最终做的。除了必须使用javascript设置外,因为它是基于用户查看区域宽度的变量。我刚刚在th定义后添加了一个脚本,然后使用document.getelementbyid()。style.colSpan设置不同的大小 – 2012-01-02 22:38:40

0

有一个解决方案,但它不适用于所有的浏览器; colspan='0'

<table> 
    <tr> 
    <th colspan="0">Header</th> 
    </tr> 
    <tr> 
    <td> 1/n </td><td> 2/n </td><td >3/n </td> 
    </tr> 
</table> 

这不,当表格的布局CSS属性设置为固定的工作,也这是不是一个好的标记的做法:P

+0

非跨浏览器,不是语义,非标准,不适用于某些CSS属性。为什么甚至发布它? – Oded 2012-01-02 23:23:12

+0

在stackoverflow上给出了两次相同的答案。 [1st](http://alturl.com/p6mcd)[2nd](http://alturl.com/of8ti),[w3schools](http://www.w3schools.com/tags/att_td_colspan.asp)提到它,所以我认为这是值得一提的。 – oqx 2012-01-03 08:21:15

+0

你不应该依赖w3schools。见http://w3fools.com – Oded 2012-01-03 08:58:12

0

如果您希望第一个出现在表头并跨越所有列,可能性是它不是所有列的标题单元格,而是整个表格的标题。在这种情况下,逻辑标记是使用<caption>Header</caption>。它写在任何行之前(并且而不是包裹在<tr>元素内)。它默认情况下会以普通文本样式显示,因此您可能需要设置例如caption { font-weight: bold }在CSS中。

+0

是的,这是我曾经黑客做的事情。但我其实<.< >。>不知道标题!感谢您的新信息:) – 2012-01-03 00:14:15