Php WP:验证程序中的开始标记HTML?

Php WP:验证程序中的开始标记HTML?,php,html,internet-explorer,Php,Html,Internet Explorer,我试图在中验证此HTML文档,但出现以下错误: Line 10, Column 71: Stray start tag html. <html dir="rtl" lang="ar" prefix="og: http://ogp.me/ns#" class="no-js"> 第10行第71列:开始标记html。 这是我正在输入的HTML: <!DOCTYPE html> <meta http-equiv="Content-Type" content="text

我试图在中验证此HTML文档,但出现以下错误:

 Line 10, Column 71: Stray start tag html.
<html dir="rtl" lang="ar" prefix="og: http://ogp.me/ns#" class="no-js">
第10行第71列:开始标记html。
这是我正在输入的HTML:

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[if IE 7]><html <?php language_attributes(); ?> class="ie ie7 no-js" /><![endif]-->
<!--[if IE 8]><html <?php language_attributes(); ?> class="ie ie8 no-js" /><![endif]-->
<!--[if !(IE 7) | !(IE 8)  ]><!--><html <?php language_attributes(); ?> class="no-js" /><!--<![endif]-->
<head>

此处的
标记意味着前面还有一个
标记

根据HTML5标准,一些标签是可选的
就是这样的标签。您可以删除它们,但解析器将在需要时插入它们。在您的情况下,它们需要在
标记之前,因为
被定义为
标记的子元素,而
标记又是
的子元素

所以验证器实际看到的是:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[if IE 7]><html <?php language_attributes(); ?> class="ie ie7 no-js" /><![endif]-->
<!--[if IE 8]><html <?php language_attributes(); ?> class="ie ie8 no-js" /><![endif]-->
<!--[if !(IE 7) | !(IE 8)  ]><!--><html <?php language_attributes(); ?> class="no-js" /><!--<![endif]-->
<head>


有2个??一个是显式的,您在代码中给出,另一个是隐式的,由解析器添加。是的,实际上你有两个标签。@user3626111,你到底做了什么?您只需移动
标记,使其位于
标记之后。如果问题仍然存在,请显示您尝试的确切代码。@user3626111查看结果并查看第二个错误的注释:“上次错误后无法恢复。任何进一步的错误都将被忽略。”这就是为什么在修复
标记位置之前,您看不到其他错误的原因。