首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML验证错误-范围4…中的表列5由元素建立,没有细胞在其中开始。

HTML验证错误-范围4…中的表列5由元素建立,没有细胞在其中开始。
EN

Stack Overflow用户
提问于 2014-12-10 18:29:13
回答 2查看 2K关注 0票数 1

编辑:我使用了W3验证器。在验证我的html代码时遇到了问题。我试着用谷歌搜索答案,但我似乎找不到解决问题的方法。如果有人能向我解释一下是什么导致了这个错误,以及如何解决它,我会很高兴的。错误消息:第80行,第19列:范围4…中的表列5由元素th建立的细胞中没有起始细胞。th colspan=“6”K pt utrustning/th.

下面是与该表相关的代码:

代码语言:javascript
复制
        <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>

任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-10 18:53:00

该表结构违反了现在已在HTML5中形式化的HTML5模型,W3C HTML5验证器会对其进行检查。该模型在第4.9章的4.9.12 处理模型部分描述了HTML5规范的表格数据。这是相当技术性的,但关键是一个表由行和列组成,这些行和列定义了一个槽网格,每个插槽中必须有一个单元格。

在您的例子中,真正的问题是您声明了六列,但是列4和5中的槽中没有从它们开始的单元格。换句话说,您的表实际上只有四列(如@PHJCJO所建议的那样,在单元格周围添加边框),但您已经声明了相反的情况,好像第三列由三列组成。

修复方法是删除所有执行此操作的colspan="3"属性,并相应地将colspan="6"更改为colspan="4"。下面的代码实现了这一点,并进行验证,并创建相同的呈现,除非可能是第三列的宽度,如果需要,应该在CSS中设置。为了清楚起见,这里包括了边界。

代码语言:javascript
复制
 <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>

票数 4
EN

Stack Overflow用户

发布于 2014-12-10 18:36:27

在语义上,使用<th> (指示行/列标题)应该后面跟着一个或多个<th>,除非<th><thead>中。我将使用<td colspan="6">Köpt utrustning</td>而不是<th>,如果这是您想要达到的效果,只需将其样式设置为大胆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27408269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档