【发布时间】:2013-12-01 11:04:06
【问题描述】:
我最近遇到了一个使用定义列表标签的网站,尽管使用不正确,但仍然如此。他们使用它们时没有将定义标题声明为定义列表的第一个子项。
出于好奇,我通过 w3c 验证器输入了以下内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
</head>
<body>
<dl>
<dd>description</dd>
<dd>description</dd>
<dd>description</dd>
</dl>
</body>
</html>
为什么会验证?当然它在语义上没有一点意义吗?还是我只是遗漏了一些非常明显的东西?
【问题讨论】:
-
spec 有一段关于
dl元素内容模型的DTD 摘录。它只是说dl可以有dt和/或dd孩子,并且不能为空。由于 HTML 4 验证只涉及检查文档是否符合 DTD,这就是使其验证的原因。验证不会检查文档的语义,除非这些语义已编入 DTD。 -
@BoltClock,您似乎已将评论扩展为答案,然后将其删除 - 我不明白为什么。这是一个相当准确的答案。
-
@Jukka K. Korpela:我不确定我是否通过简单地说它验证的唯一原因是因为它符合 DTD 来完全回答这个问题。但仔细想想,你是对的 - 我会恢复它。
标签: html validation w3c