为什么我的文档不能作为XHTML 1.1 STRICT验证?

时间:2009-12-16 11:39:18

标签: xhtml doctype w3c xml-attribute xhtml-1.1

虽然不推荐使用target =“_ blank”,但为什么W3C验证器没有给出错误?您可以在validator

中粘贴并检查此代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<p>
<a href="http://www.stackoverflow.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>

修改

这是否意味着XHTML 1.1支持target =“_ blank”,但XHTML 1.0严格不支持?或者它是W3C验证器中的错误?

6 个答案:

答案 0 :(得分:4)

您被验证为XHTML 过渡而不是严格。如果手动将doctype重写为XHTML 1.0 Strict,则会出现此错误:

  

错误第11行,第76列:存在属性“target”,但不能用于此元素。

     

... om“title =”新窗口将打开“target =”_ blank“&gt;链接在新窗口中打开

如果您想严格要求,请使用此doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

过渡模式仍然允许某些已弃用的元素和属性,我想帮助人们过渡逐步实现更严格的标记。

修改

好的,所以原始代码是XHTML 1.1,其中只有一个版本(没有Strict / Transitional),而根据this FAQ,确实不允许使用target属性。所以我想这肯定是验证器中的一个错误。

答案 1 :(得分:2)

已弃用但未删除。这就是为什么我认为验证它存在问题。

答案 2 :(得分:2)

XHTML1.1 documentation表示a元素的目标属性可以是“任何”。

答案 3 :(得分:2)

这是否意味着XHTML 1.1支持target =“_ blank”但XHTML 1.0严格不支持?

嗯,是的。

如果您需要解决问题的方法,那么这就是其中之一。另一种选择是使用window.open()而不是target =“_ blank”。

答案 4 :(得分:1)

我使用了您的代码,我收到了以下错误。

将此文档检查为XHTML 1.1时发现错误!

验证输出:1错误

  1. 错误第11行,第76列:没有属性“target”

    ... .com“title =”新窗口将打开“target =”_ blank“&gt;链接在新窗口中打开

  2. 验证工具截止到2012年1月30日。您无法使用target =“_ blank”

    传递验证

    替换为此有效代码部分:

    的onclick = “目标= '_空白';”

答案 5 :(得分:0)

虽然xhtml可能支持“targrt =”_ blank“,但它不会验证它,因为它已被折旧。如果你不想使用JS,你将不得不在”文档类型“中使用transitional而不是strict