html5错误:元素头缺少子元素标题的必需实例

时间:2015-01-16 08:38:22

标签: html

我试图发送电子邮件,但如果正文格式不正确的html提供商,电子邮件提供商也不允许我发送电子邮件。任何人都可以帮我验证这个吗?

错误为Element head is missing a required instance of child element title.

<!DOCTYPE html>
<html>
<div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);">
</div>
</html>

验证员:http://validator.w3.org/check

2 个答案:

答案 0 :(得分:2)

您应该添加body-tag和head-tag。它应该包含一个标题,它不是空的,也是一个字符集设置。

<!DOCTYPE html>
<html>
   <head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  </head>
  <body>
    <div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);">
    </div>
  </body>
</html>

正如验证员所说:

  

元素头的内容模型:   如果文档是iframe srcdoc文档或者标题信息可从更高级别的协议获得:元数据内容的零个或多个元素,其中不超过一个是标题元素,并且不超过一个是基本元素。   否则:元数据内容的一个或多个元素,其中只有一个是title元素,不超过一个是基本元素。

答案 1 :(得分:2)

您的文档是有效的HTML5。验证程序错误地发出错误消息。它的诊断是自相矛盾的,因为它报告缺少title元素作为错误,但引用HTML 5.1草案说,除其他外,当“标题信息可用时不需要该元素”来自更高级别的协议“。该规则在HTML5规范中阐明如下,在head element的描述末尾:

  

注意。在大多数情况下,title元素是必需的子元素,但是当更高级别的协议提供标题信息时,例如在   HTML用作电子邮件创作时的电子邮件的主题行   格式,title元素可以省略。

目前无法告知验证者正在检查的文档将被用作电子邮件的正文(并且验证者无法实际检查该文件!)。我已经提交了bug report,建议将此作为警告,而不是错误,但我不希望这很快就会实施。

因此,您可以告诉您的电子邮件提供商此错误消息不正确,并引用W3C HTML5建议书。但是,如果他们实际上需要一个干净的验证器报告而不是有效性,那么除了添加title元素之外,您几乎没有任何其他选择。就验证者而言,任何非空的内容都可以,例如。

<!DOCTYPE html>
<html>
<title>Message</title>
<div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);">
</div>
</html>

(另外,<html></html>代码不是必需的。)

您也可以考虑修改电子邮件生成软件,以便将电子邮件标题(放在Subject:标题中)的副本插入title元素。在这种情况下,请记住通过&内容中的&amp;任意<来转义内容中的任何&lt;