但是,该帖子并没有说明这个前缀属性是什么,或者是什么。 AFAIK这不是一个标准的HTML属性。我能够找到this document,我认为是W3C定义这个属性的地方,但是没有任何意义。
有人可以向我解释:
>前缀属性做什么?
>我可以写
< html prefix =“og:http://ogp.me/ns#”>
代替
< html prefix =“og:http://ogp.me/ns#\"\u0026gt; 或者会是语法错误?
>我可以为任何给定的HTML标签包含多个前缀属性?
< head prefix =“a:http://www.aaa.com/ns#”prefix =“b:http://www.bbb.com/ns#\"\u0026gt; 根据我对HTML的了解,这是错误的,但是前缀是非标准属性。所以也许,我想知道的是,可以写: < head prefix =“a:http://www.aaa.com/ns# b:http://www.bbb.com/ns#\"\u0026gt; 或者在HTML树中的任何位置指定多个前缀,因为某些原因没有意义?
>如果这个前缀标记不是HTML规范的一部分,那么如何将包含此属性的页面提交到代码验证器,这样会导致我的代码符合标准?
谢谢你回答我的问题。
解决方法
前缀由RDFa (Resource Description Framework in Attributes)扩展名定义的属性之一。 RDFa用于以许多标记语言(如HTML和XML)表示的网页中实现Semantic Web。而不是让一个网页告诉浏览器它应该如何构造,现在你也可以告诉它什么是页面代表,像个人,产品列表等。
并且为了能够语义地表示您的网页上的数据,您需要使用语义词汇表,这将告诉浏览器:您的页面中正在表示的内容。流行的语义词汇是schema.org。
但是,有时候单词语义词汇不能代表和描述所有的网页。这是前缀属性的地方:
What does the
prefix
attribute do?
前缀属性允许您指定正在使用的一个或多个语义词汇表。以下示例使用两个词汇表示拥有喜爱的动物的人:schema.org和vocab.org。
<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person"> My name is <span property="name">MY_NAME</span> and my telephone is <span property="telephone">MY_TELEPHONE</span>. My favorite animal is the <span property="ov:preferredAnimal">FAVORITE_ANIMAL</span>. </p>
Can I write
<html prefix="og:http://ogp.me/ns#">
instead of<html prefix="og: http://ogp.me/ns#">
or would that be a Syntax error?
除了无法使用以前的语法在网络上找到任何示例,从RDFa Core的规范可以看出,至少有一个空格确实是强制性的:
prefix a white space separated list of prefix-name IRI pairs of the form NCName ':' ' '+ xsd:anyURI
Can I include multiple
prefix
attributes for any given HTML tag?
是的你可以。从上面给出的前缀属性的规范,以及RDFa Core规范给出的很多例子,允许以下内容:
<html prefix="foaf: http://xmlns.com/foaf/0.1/ dc: http://purl.org/dc/terms/" > <!-- your page --> </html>
If this
prefix
tag is not part of the HTML spec,how would submitting a page containing this attribute to a code validator ever result in my code being standards compliant?
如@wensveen,HTML5 supports the RDFa attributes out-of-the-box所述。