生成HTML邮件时要使用哪种文档类型?

7
我正在处理一个CMS网站,该网站根据HTML页面发送通讯(并提供作为多部分/可选项的纯文本转换)。我想知道选择doctype的最佳实践是什么。
这些页面的设计当然简化了真实网站,并且对于页面本身而言,获取正确的doctype是微不足道的。但是,这个通讯页面将在各种“浏览器”中显示,从Gmail到Outlook。基于Web的电子邮件客户端将已经有自己的doctype,而本地安装的电子邮件客户端可能具有不同的引擎,可能具有不同的要求。
那么,在HTML邮件中应该使用哪种doctype(如果有)?
3个回答

7

您可以并且应该包含最能描述文档格式的doctype。

但这只是正确性的问题;不要指望它实际上有任何实质性的影响。正如您所指出的,网络邮件服务将HTML显示为其自身文档的一部分,这意味着您无法在Quirks模式和标准模式之间进行选择。桌面客户端通常拥有自己古老的HTML渲染器,早在Quirks和Standards存在之前就已经存在了;它们将忽略doctype。而且,这两种类型的客户端会比Quirks模式暗示的更糟糕地破坏您的HTML。HTML邮件是一个无尽的苦恼世界。


我认为正确性应该始终是目标。实际上,它应该是起点。谢谢。 - norwebian

2

我通常会测试有无文档类型声明。

基本上,你想让你的HTML在标准模式和怪异模式下看起来一样;例如,避免设置CSS padding+width(框模型不兼容性),并测试哪些已弃用属性在怪异模式下可用但在标准模式下不可用。


谢谢,欢迎来到Stack Overflow。我同意测试和避免最常见的陷阱是一个好主意,但是当两个网络邮件服务以不同的文档类型呈现其页面时该怎么办呢?包含在此页面中 - 其文档类型未知 - 是新闻通讯,很可能只有其标题被切断的正文。我意识到bobince的答案是最合理的,然后我们只需要相信任何查看软件的设计师能够充分利用它。 - norwebian

1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>Message from {shop_name}</title>
</head>

这是 PrestaShop 使用的,而且运行得非常好。


谢谢,不过实际的 doctype 可能会因为我在网站其他部分使用的模板而有所不同。问题是在某些未知的渲染环境中放置一个多余的 doctype 会产生什么影响,或者是否最好完全删除它。但还是谢谢! - norwebian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接