Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
在一个请求中加载多个Google字体违反了HTML标准_Html_Url_Google Font Api_Html Validation - Fatal编程技术网

在一个请求中加载多个Google字体违反了HTML标准

在一个请求中加载多个Google字体违反了HTML标准,html,url,google-font-api,html-validation,Html,Url,Google Font Api,Html Validation,在中,建议通过管道字符(|)加载多个Google字体,例如: <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700|Amaranth:400italic" /> 它说: 元素链接上的属性href的值不正确:查询中不允许使用非法字符:| 我应该信任哪个网站?当然,我可以在两个请求中分离两种字体,如下所示,但加载时间将加倍 <lin

在中,建议通过管道字符(
|
)加载多个Google字体,例如:

<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700|Amaranth:400italic" />

它说:

元素链接上的属性href的值不正确:查询中不允许使用非法字符:|

我应该信任哪个网站?当然,我可以在两个请求中分离两种字体,如下所示,但加载时间将加倍

<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700" />
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Amaranth:400italic" />


p、 DOCTYPE是HTML5。

更新了:重新措辞,以正确传达立场和预期的细微差别程度(之前的措辞可能将我的立场歪曲为“从不使用验证器”,而事实上,我的意图是“在出现分歧时选择浏览器行为而不是验证器”)

在这种特殊情况下,验证器是正确的;“|”符号需要进行百分比编码。但是,您应该记住,验证器并不是完美的,而且许多验证器在处理过程中过于严格真正重要的是网站在用户使用的浏览器中的加载方式,而不是特定验证器的想法。如果验证器与浏览器中的实验结果不一致,则从网站开发的角度来看,浏览器始终是“正确的”(相对于W3C标准中的内容可能不正确,但“web平台”由事实上的“标准”决定)由于典型的浏览器行为……W3C和其他标准委员会通常在浏览器更改方面做得很好,只有在web平台被广泛采用之后,才完全、正式地对其进行标准化)

正如@slideshowbarker在下面的评论中所指出的,验证器和linter在开发过程中有助于在开发的早期发现错误(我同意这一点)。但是,您应该意识到(并且不总是正确的,有时过于嘈杂);不要浪费大量时间让验证器对浏览器完全接受的代码感到满意,这一点很重要。当然,你不应该在你的网站上乱扔验证图标/按钮,这些图标/按钮只会让那些访问网站、不知道或不关心HTML细节的用户感到困惑


因为浏览器,而不是验证器,是页面是否正常运行的真正“真相来源”,除了这些其他验证器工具之外,您可能希望向工具库中添加测试。WebDriver允许您创建在各种不同浏览器中呈现您的网站的集成测试,这允许您以比独立验证器更准确的方式模拟和验证您的网站在各种浏览器中的行为。因此,WebDriver测试执行的检查也可能比验证器提出的错误更重要/噪音更小/不可忽略(验证器有时在投诉中可能过于严格)。

正如@BoltClock所建议的,将管道字符转义到
%7C
是最佳选择

<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700%7CAmaranth:400italic" />


两种字体均已正确加载,并通过上述链接的网络响应进行验证。

。。。或者你可以直接用URL编码。谢谢你发这个帖子,很抱歉检查信息在这里没有多大帮助。但展望未来,我希望能帮助其他人找出他们需要更改的内容,以避免检查者提出错误。感谢您的回答,但我确实认为验证器的存在是有原因的。在我看来,所有网站遵守标准是非常重要的,否则互联网将变得一团糟,像IE这样的标准产品将继续破坏互联网的整体质量。W3C/Nu HTML检查器的维护者在这里。我实际上同意这里关于“验证器”的说法。这就是为什么HTML检查器不是验证器。相反,它只是一个工具,可以帮助你抓住可能会错过的意外错误。我也完全同意,真正重要的是你的文档在用户使用的浏览器中如何加载,以及文档呈现后的行为。但这不是非此即彼。在任何编程环境中,静态分析也很有用,这就是为什么我们有linter,这就是HTML检查器的基本功能,但与HTML检查器的区别在于,它所做的筛选不仅仅是基于某人对规则应该是什么的突发奇想,而是基于我们广泛同意的规则,并在标准规范中进行了记录。HTML标准本身也记录了其规则的基本原理。有关更多信息,请参阅&&最后,我想补充一点,HTML检查器提供的大部分内容基本上是数据类型检查语法检查。某些HTML属性(如)的数据类型/语法非常复杂且极易出错,因此如果没有能够帮助您检查的工具,很容易出错,如果没有检查器的帮助,有时很难找到错误。因此,我对HTML检查器的目标是通过帮助您发现此类错误来节省您的时间,从而避免浪费您的时间。@sideshowbarker,我同意验证器是有用的工具,但是--我相信您已经从自己的经验中了解到--它们经常会产生误报,而实际上不需要采取任何行动。然而,我可以看出我的早期版本似乎比我预期的要强硬得多。。。。从那以后,我重新措辞了。我打算解决一个更大的问题,即“当存在分歧时,我相信谁”。考虑到有很多网站都有验证程序图标或浪费了XHTML有效性的时间,仍然值得指出的是,验证只是一个工具。它调用这些字符的URL代码点。因此,如果您查看该列表,您将看到唯一不需要进行百分比编码的常见非字母数字字符(这里的“common”是指ASCII范围内的字符)