!DOCTYPE html 销毁页面

!DOCTYPE html destroyed page

!DOCTYPE html 我有一个奇怪的错误。

当我尝试使用 HTML5 Doctype 时,我的页面看起来很奇怪。所有脚本看起来都没有正确关闭。

但是当我更改为 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 时,一切看起来都很好。

我不明白页面结构有什么问题以及为什么只在 HTML5 时出现。

HTML5 完全删除并重新设计了许多 HTML4 元素(XHTML 1.0 基于该元素)。如果一个网站主要使用 XHTML 1.0 编码,您不能只是切换到 HTML5 并假设事情不会中断。

您最好的选择是 运行 通过 W3C 的 HTML 验证器 https://validator.w3.org 转换后的文档类型代码,然后查看它生成的错误和警告。这应该让您了解为什么事情没有按照您希望的方式工作。

谢谢大家的帮助!

我找到了解决方法。在我的例子中,错误出现在一个扩展中,它在观察者中使用了 $dom->saveXML() 方法。并在呈现此方法之前解析 DOM 和 removed/replaced HTML 输出。