HTML:语义标记地址?

时间:2011-12-10 07:35:57

标签: html semantic-markup

如何标记地址(例如商家及其地址列表)?问题是我不会总是有足够的地址信息来完成vCard微格式。 address HTML标记应该是页面作者的联系信息,因此可能不是正确的标记。

建议?

3 个答案:

答案 0 :(得分:2)

不完全确定您的要求是什么,但如果从搜索引擎的角度来看,您担心会给Schema.org一个问题。 the local business page上有一些很好的信息和示例可以帮助您标记搜索引擎的地址。

答案 1 :(得分:0)

好吧,如果它是企业及其地址的列表,也许您应该使用列表。在HTML中你可以做的每一件事都没有语义元素,你只需要使用最相关的元素。根据您将如何格式化此信息,如果数据采用表格格式,则应使用表格,或者使用几乎任何其他格式的列表。

您可以设置列表样式以删除侧面的项目符号,但最重要的是您仍然提供列表数据,这是您可以使用的最具语义性的内容。

答案 2 :(得分:0)

目前没有用于标记实际地址或邮政地址的指定元素。您是对的:<address>应该仅用于表示文章或文档作者的联系信息,因此您不应该使用它来标记商家列表中的地址。

当某些语义不存在HTML时,最好的办法是标记最接近意义的元素,然后使用辅助标准,如(1)微格式类,(2)微数据属性和/或(3) )ARIA角色。就个人而言,我更喜欢Microdata而不是Microformats,因为Microdata不会干扰[class]属性,这属于造型。我不喜欢将语义与风格混合在一起。 ARIA角色是可访问性的,我不太了解它们,但是它们非常适合您的代码。

阅读Microdata syntax(HTML的扩展)。 Microdata是标记中的官方语法,而Schema.org是一种非常流行的(谷歌喜欢它)词汇以与语法一起使用。还有其他不那么受欢迎的词汇表。

要标记物理地址,请使用Schema.org PostalAddress itemtype及其相应的属性。老实说,最好的元素是普通的<p>

<p itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="name">The White House</span>
  <br/>
  <span itemprop="streetAddress">1600 Pennsylvania Avenue</span>
  <br/>
  <span itemprop="addressLocality">Washington</span>,
  <span itemprop="addressRegion">DC</span>
  <span itemprop="postalCode">20500</span>
  <br/>
  <data itemprop="addressCountry" value="US">United States of America</data>
  <br/>
  <span itemprop="url">https://www.whitehouse.gov/</span>
</p>

<br/>元素旨在提供(语义,有意义的)内容中的换行符,因此在邮政地址中使用它是合理的。它也是一个非常传统的用例。然而,可以认为<pre>同样适用,因为它是技术上预先格式化的文本。

<pre itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="name">The White House</span>
  <span itemprop="streetAddress">1600 Pennsylvania Avenue</span>
  <span itemprop="addressLocality">Washington</span>, <span itemprop="addressRegion">DC</span> <span itemprop="postalCode">20500</span>
  <data itemprop="addressCountry" value="US">United States of America</data>
  <span itemprop="url">https://www.whitehouse.gov/</span>
</pre>