Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
!DOCTYPE html页面_Html_Doctype_Xhtml 1.0 Strict - Fatal编程技术网

!DOCTYPE html页面

!DOCTYPE html页面,html,doctype,xhtml-1.0-strict,Html,Doctype,Xhtml 1.0 Strict,我的有一个奇怪的bug!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完全删除并重写了许多HTML

我的
有一个奇怪的bug!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元素(XHTML1.0就是基于这些元素)。如果一个网站主要是用XHTML1.0编写的,那么你不能仅仅切换到HTML5,并假设事情不会破裂


您最好的选择是通过W3C的HTML验证程序在运行转换后的doctype代码,并查看它生成的错误和警告。这会让你明白为什么事情没有按你所希望的方式进行。

谢谢大家,谢谢你们的帮助


我找到了解决问题的方法。在我的例子中,错误出现在一个扩展中,它在observer中使用了
$dom->saveXML()
方法。在呈现此方法之前,请先解析
DOM
并删除/替换HTML输出。

是否通过HTML验证程序运行页面?是否使用IE?你在不同的浏览器中试用过吗?@J08691没有,我没有,因为现在它在我的本地浏览器上。这不是不使用HTML验证程序的理由。允许您上传文件,甚至复制和粘贴代码。@Styl Chrome、Firefox、IEIt更糟糕的是:它是XHTML:)我认为他描述了相反的情况。HTML5的设计是为了与旧网站向后兼容-尽管许多HTML 4元素的语义已经改变,通过从一种严格的doctype切换到另一种doctype,实现不会突然表现出不同的行为。@BoltClock这是真的,但我认为在OP的例子中,从XHTML 1.0到HTML5可能是一个很大的步骤。不过这很奇怪。主浏览器并不真正区分doctype;如果文件类型是HTML,则使用HTML解析器。没有单独的HTML4和HTML5解析器!因此,从技术上讲,通过切换doctype(除非您使用触发怪癖模式的doctype),不可能使您的站点看起来有所不同。