Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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/6/google-chrome/4.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字体URL在w3.org上破坏HTML5验证_Html_W3c Validation_Google Font Api - Fatal编程技术网

Google字体URL在w3.org上破坏HTML5验证

Google字体URL在w3.org上破坏HTML5验证,html,w3c-validation,google-font-api,Html,W3c Validation,Google Font Api,我使用此HTML标记加载3种不同大小的字体: <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic|PT+Serif:400,400italic|Bree+Serif"> W3C标记验证程序现在不喜欢什么?URL在href属性(%7C)中对(管道字符)进行编码: 必须将字符|替换为相应的

我使用此HTML标记加载3种不同大小的字体:

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

W3C标记验证程序现在不喜欢什么?

URL在
href
属性(
%7C
)中对
(管道字符)进行编码:


必须将字符|替换为相应的UTF-8字符,这将

href="http://fonts.googleapis.com/css?family=Cookie%7cAmaranth%7cKaushan+Script%7cCousine%7cBilbo+Swash+Caps%7cRancho&amp;effect=shadow-multiple"

我用“&;”替换,效果很好,例如:

<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700&amp;subset=latin,latin-ext' rel='stylesheet' type='text/css' />

有两种方法可以解决此验证问题:


  • URL编码
    链接
    元素的
    href
    属性中的
    |
    (垂直条/线)字符(如
    %7C
    ):


  • 我的案子是疯狂的断线角色。请看附件中的图片。

    我知道这是一篇老文章,但是有人知道分离
    标签是否有任何性能(dis)优势吗?如果一次呼叫中有多个字体,Google会压缩吗?@Patrickmore 2件事:a)你的服务器上传/响应速度与最终用户下载速度b)创建另一个连接的时间(服务器响应时间与最终用户响应时间),理论上,如果你加载2个“重”字体,而你的页面加载速度很快,单独加载(以并行方式)可能会导致更快的加载。但这确实取决于a)&b)这个问题是关于
    字符的,而不是
    &
    -)这是谷歌生成的URL的问题还是w3验证程序的问题?是否有任何规范要求在HTML属性中编码管道字符?@MikkoRantalainen注意到管道字符是不安全的:其他字符是不安全的,因为已知网关和其他传输代理有时会修改这些字符。这些字符是“{”、“}”、““、”、“\”、“^”、“~”、“[”、“]”和“`”。我希望原始UTF-8在UTF-8编码的HTML中有效,不编码其他字符,但用于HTML的字符除外,例如
    &
    。这些特殊字符需要按照HTML规则进行编码(例如
    &
    等)。然后,用户代理将遵循RFC 3987,并在通过HTTP()提交之前将IRI转换为百分比编码UTF-8。
    href="http://fonts.googleapis.com/css?family=Cookie%7cAmaranth%7cKaushan+Script%7cCousine%7cBilbo+Swash+Caps%7cRancho&amp;effect=shadow-multiple"
    
    <link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700&amp;subset=latin,latin-ext' rel='stylesheet' type='text/css' />
    
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic%7CPT+Serif:400,400italic%7CBree+Serif">
    
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic">
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Serif:400,400italic">
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Bree+Serif">