<html>
<body>
<TABLE border="1" ">
<CAPTION><EM>A test table with merged cells</EM></CAPTION>
<TR><TH rowspan="2"><TH colspan="2"> Average
<TH rowspan="2">Red<BR>eyes </TH>
</TR>
<TR>
<TH>height</TH><TH>weight</TH>
</TR>
<TR>
<TD>1.9<TD>0.003<TD>40%</TD>
</TR>
<TR>
<TD>1.7<TD>0.002<TD>43%</TD>
</TR>
</TABLE>
</body>
</html>
我得到的输出标题的第一个元素为空白
A test table with merged cells
/-----------------------------------------\
| | Average | Red |
| |-------------------| eyes |
| | height | weight | |
|-----------------------------------------|
| 1.9 | 0.003 | 40% | |
|-----------------------------------------|
| 1.7 | 0.002 | 43% | |
\-----------------------------------------/
预期输出
A test table with merged cells
/----------------------------- \
| Average | Red |
|-------------------| eyes |
| height | weight | |
|------------------------------|
| 1.9 | 0.003 | 40% |
|------------------------------|
| 1.7 | 0.002 | 43% |
\------------------------------/
答案 0 :(得分:11)
删除代码中的额外TH
<html>
<body>
<TABLE border="1" >
<CAPTION><EM>A test table with merged cells</EM></CAPTION>
<TR>
<TH colspan="2"> Average</TH>
<TH rowspan="2">Red<BR>eyes </TH>
</TR>
<TR>
<TH>height</TH><TH>weight</TH>
</TR>
<TR>
<TD>1.9<TD>0.003<TD>40%</TD>
</TR>
<TR>
<TD>1.7<TD>0.002<TD>43%</TD>
</TR>
</TABLE>
</body>
</html>
答案 1 :(得分:7)
虽然nauphal已经解决了您的问题,但我只想就您的HTML结构提出一些建议。
首先,大写不是必需的(HTML不区分大小写),但是你是否应该切换到XHTML小写 是 是强制性的(坦率地说,看起来也好一点。)
其次,因为浏览器总是插入tbody
元素(我不确定所有客户端,但肯定是可视化Web客户端)如果已经没有一个存在,通常最好包装那些代表tbody
自己的表的“主体”的元素,这样你就可以将th
元素行分配给thead
,这会稍微增加语义(我'我不确定它有多有用,但每一点都有帮助。)
第三,记得关闭你的标签:
<TR>
<TD>1.9<TD>0.003<TD>40%</TD>
</TR>
真的应该是:
<TR>
<TD>1.9</TD><TD>0.003</TD><TD>40%</TD>
</TR>
同样,它不是强制性的(在HTML 4中,我相信),但它通过在标记周围添加额外的,非封闭的开始标记来减少引入错误的范围。
第四,这可能只是挑剔,可能,如果你想要整个caption
作为强调文本的样式,更容易避免插入额外的标记并只调整{{1直接。
那就是说,这是我的桌子版本和一些CSS:
caption
CSS:
<table>
<caption>A test table with merged cells</caption>
<theader>
<tr>
<th colspan="2">Average</th>
<th rowspan="2">Red Eyes</th>
</tr>
<tr>
<th>height</th>
<th>weight</th>
</tr>
</theader>
<tbody>
<tr>
<td>1.9</td>
<td>0.003</td>
<td>40%</td>
</tr>
<tr>
<td>1.7</td>
<td>0.002</td>
<td>43%</td>
</tr>
</tbody>
</table>
答案 2 :(得分:0)
改变第一行
<TR>
<TH colspan="2"> Average</TH>
<TH rowspan="2">Red<BR>eyes </TH>
</TR>
它将解决问题