编辑:我使用了W3验证器。
当我尝试验证我的HTML代码时遇到问题。我试图谷歌答案,但我似乎无法找到解决方法。如果有人能够向我解释导致错误的原因以及如何解决错误,我将非常高兴。 错误消息:第80行,第19列:由元素th建立的范围4 ... 5中的表列没有以单元格开头的单元格。
th colspan =“6”Köpt不信任/
以下是与该表相关的代码:
<div id="tabell2Space">
<div id="tabell2">
<table>
<tr>
<th colspan="6">Köpt utrustning</th>
</tr>
<tr>
<th rowspan="2">Artikelnummer#</th>
<th rowspan="2">Artikelbild</th>
<th colspan="3">Beskrivning</th>
<th>Pris</th>
</tr>
<tr>
<th colspan="3">Frakt, installation, etc</th>
<th>Kostnad</th>
</tr>
<tr>
<td rowspan="2">1.</td>
<td rowspan="2"><img alt="Dator" src="Bilder/pryl2.jpg"></td>
<td colspan="3">IMB Clone computer</td>
<td>$ 400.00</td>
</tr>
<tr>
<td colspan="3">Frakt, installation, etc</td>
<td>$ 20.00</td>
</tr>
<tr>
<td rowspan="2">2.</td>
<td rowspan="2"><img alt="Datorkomponent" src="Bilder/pryl1.jpg"></td>
<td colspan="3">1GB RAM Module</td>
<td>$ 50.00</td>
</tr>
<tr>
<td colspan="3">Frakt, installation, etc</td>
<td>$ 14.00</td>
</tr>
<tr>
<th colspan="6">Köpt utrustning</th>
</tr>
</table>
</div>
</div>
感谢任何帮助!
答案 0 :(得分:3)
表结构违反了HTML表模型,现在已经在HTML5中形式化,W3C HTML5验证器会对其进行检查。该模型在第4.9节Processing model的第4.9节HTML5规范的表格数据中描述。这是技术性的,但重点是表格由行和列组成,它们定义了一个插槽网格,每个插槽必须有一个以单元格开头的单元格。
在您的情况下,真正的问题是您声明了六列,但第4列和第5列中的插槽没有从它们开始的单元格。把它放在另一个,可能更有用的方式,你的表实际上只有四列(你可以看到你是否在@PHJCJO建议的情况下在单元格周围添加边框),但你已经声明了其他方式,好像第三个真正的列由三栏。
此修复是为了删除执行此操作的所有colspan="3"
属性,并相应地将colspan="6"
更改为colspan="4"
。下面的代码实现了这一点,并验证并创建了相同的渲染,除了可能的第三列的宽度,如果需要,应该在CSS中设置。为了清楚起见,此处包含边框。
<div id="tabell2Space">
<div id="tabell2">
<table border>
<tr>
<th colspan="4">Köpt utrustning</th>
</tr>
<tr>
<th rowspan="2">Artikelnummer#</th>
<th rowspan="2">Artikelbild</th>
<th>Beskrivning</th>
<th>Pris</th>
</tr>
<tr>
<th>Frakt, installation, etc</th>
<th>Kostnad</th>
</tr>
<tr>
<td rowspan="2">1.</td>
<td rowspan="2"><img alt="Dator" src="Bilder/pryl2.jpg"></td>
<td>IMB Clone computer</td>
<td>$ 400.00</td>
</tr>
<tr>
<td>Frakt, installation, etc</td>
<td>$ 20.00</td>
</tr>
<tr>
<td rowspan="2">2.</td>
<td rowspan="2"><img alt="Datorkomponent" src="Bilder/pryl1.jpg"></td>
<td>1GB RAM Module</td>
<td>$ 50.00</td>
</tr>
<tr>
<td>Frakt, installation, etc</td>
<td>$ 14.00</td>
</tr>
<tr>
<th colspan="4">Köpt utrustning</th>
</tr>
</table>
</div>
</div>
答案 1 :(得分:0)
从语义上讲,除非<th>
位于<th>
,否则使用<th>
(表示行/列标题)后面应跟有一个或多个<thead>
s。我会使用<td colspan="6">Köpt utrustning</td>
代替<th>
,只要将其设为粗体,如果这就是你想要的效果。