2015-01-16 48 views
0

我试图发送电子邮件,但电子邮件提供程序不让我发送它,如果身体格式不正确的HTML提供程序。任何人都可以帮助我验证这一点吗?html5错误:元素头缺少子元素标题的必需实例

的错误是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> 

VALIDATOR:http://validator.w3.org/check

回答

2

您应该添加身体标记和头部标签。它应该包含一个标题,它不是空的,也是一个字符集设置。

<!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文档或如果标题信息可从较高级别的协议:零或更多的元数据内容元素,其中不超过一个是标题元素,不超过一个是基本元素。 否则:元数据内容的一个或多个元素,其中一个是标题元素,不超过一个是基本元素。

+0

虽然行号不同,但我得到相同的错误。请查看http://validator.w3.org/check –

+0

请查看我的答案更新。 – roNn23

2

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

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

目前没有办法告诉验证者被检查的文档将被用作电子邮件的正文(并且验证者没有办法实际检查它!)。我已经提交了一个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;的任何<的内容中排除内容中的任何。