XHTML1 vs HTML4 和 Strict vs Transitional 是完全正交的问题。
XML 可能不会给今天的浏览器带来任何巨大的优势,但在服务器端,使用 XML 处理文档比尝试解析老式 SGML 的混乱情况要容易一个数量级,除了不是真正的 HTML4。
将自己限制在 [X]HTML Strict 本身并没有任何意义,只是它不鼓励使用您不应该使用的旧的、不易维护的技术。
内联 javascript 通常需要大量的转义来使其与 XHTML 兼容
只要您不使用字符 < 或 &,您就可以逃脱而无需任何转义。'// < [CDATA[' 并不比 '< !--' 是在过去。
无论如何,将脚本保持在外部更易于管理;您不想内联做任何重要的事情。
然后是用户输入不够强迫症以确保您不会错过任何非法字符的问题。
带外字符在 HTML4 Transitional 中与在 XHTML1 Strict 中一样无效。
如果您接受用户提交的 HTML 并且没有使用足够的细齿梳来检查/转义它以防止格式错误,那么您遇到的问题比仅仅遵守文档类型要大得多。您将让注入黑客通过并使您的站点容易受到跨站点脚本安全漏洞的攻击。
忘记确保从服务器返回的内容类型被重置为 XHTML 页面从 text/html 到 application/html+xml。
这不是“忘记”,而是故意的:今天为 application/xhtml+xml 提供服务并没有那么大的意义。要考虑到 IE,您必须嗅探 UA,然后确保您了解在两种解析模式中弹出的 CSS 和 JavaScript 差异……您可以这样做来证明您的技术实力,但它并没有真正让您得到任何东西.
将 XHTML 用作遗留 HTML 可能并不理想,但它可以让您保留更简单、更可处理的 XML 语法(以及与其他 XML 语言(如 SVG)的潜在互操作性),同时仍然对浏览器友好。
人们抱怨格式正确的错误的挑剔,但是让这些错误立即被你修复它们比让它们静静地留在那里,准备绊倒一些未来的浏览器要好得多。