HTML的'typeof'属性是什么作用?

10

最近我在stackoverflow上看到了一个问题,其中一个元素的属性使用了typeof="foaf:person"。我搜索了一下谷歌,但是这个是唯一相关的结果。这个fiddle也使用了typeof属性。请问有人能解释一下这个属性是如何以及为什么使用的吗?

3个回答

7
这不是HTML属性,而是RDF,一种不相关的标记语言,恰好可以作为HTML或XHTML的一部分使用。它用于为您的数据指定更多元数据。 RDF的命名空间之一是FOAF(这是您的foaf:person),在此处描述- http://xmlns.com/foaf/spec/
它是“语义网运动”的一部分,基本上试图包含有关Web数据的语义信息(就像HTML5添加了例如article标签一样)。因此,通过使用您的属性标记例如span,您正在表示该span的内容应解释为人,并通过添加更多属性,您可以告诉某些内容是该人的姓名或主页等。这使数据易于理解,特别是对于机器,消除了一些歧义。

好的。那么从用户/开发者的角度来看,它没有任何功能上的用处? - Rutwick Gangurde
@RutwickGangurde它的使用方式与我提到的article标签完全相同。而且说实话,现在任何HTML标签/属性-你都可以只使用table标签编写任何HTML/CSS/JS页面,它也能正常工作(所以你会有table.div,其中包含所有div的CSS等)。这是否意味着你应该这样做?你在哪里划线?如果您同意为Web页面添加更多语义含义是好的,请使用它。如果您只关心制作对人们看起来好看的网站,则不重要。至于FOAF,我不知道Google是否使用它。 - Luaan
好的...看起来我不需要真正关心它,直到出现实际需求! - Rutwick Gangurde

5

这个问题的答案可以在维基百科上找到:

typeof是一个可选属性,用于指定主题或合作资源(元数据所关注的资源)的RDF类型。


检查过了!仍然找不到用处。 - Rutwick Gangurde
它被引用了。就在那里。 - Lightness Races in Orbit

4
在实际应用中,typeof属性被用于现代内容管理系统中,以一种脱离CMS后端实现的方式标记内容。大致上,"typeof"告诉你一个可编辑对象的类型,"about"为该对象提供唯一的标识符,而"property"则针对对象的特定功能;在CMS中,这可以表示(表格/行/列)的三元组,并且可以映射到(页面/父DOM对象/特定的子对象)。
具体来说,一个充满最近流行的“卡片”UI的页面会有一个特定的URI,用于指示这些卡片来自哪个表格,同时也充当标识符,“这些是卡片,加载卡片编辑脚本”;每个卡片都有自己的“about” URI;每个可编辑字段都有自己的“property”,以告诉编辑脚本应该使用什么样的工具来编辑它(它是一个图像?富文本?等等),以及目标列(标题,标题头,图像,正文等)。
这为UI和后端提供了一个共同的词汇,以针对RESTful对象进行定位。通过给对象提供类型信息,启用了编辑工具,而无需更多地了解正在编辑的对象;通过提供“关于”URI,两端的REST终点管理器可以对对象进行CRUD,而无需与编辑器紧密耦合。
还有许多其他方式可以使用这些信息,但这是“RDFa-light”属性的一种普遍用法,已经在现实世界中得到了应用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接