标签标签语义

时间:2011-03-24 05:00:13

标签: html html5 semantic-markup

我读过this并且我通常使用跨度或强度来描述“文本标签”。对于最佳实践,这是真的吗?它似乎也是一种语义方式,但为什么它只限于表单元素?

如果我想以这样的方式显示信息怎么办:

Name: FOo Bar
Age: 27
Weight: 151 kg

等?

名称,年龄和体重都可以描述为标签,但由于他们描述的项目不是输入标签,因此它在语义上不正确(至少对于html和w3c)。我通常使用

<span class="label"> or <span class="description"> or <span class="person-detail"> etc

但通常还应该有一个与输入字段无关的标签标签。由于这可能有点主观,我不介意这变成社区维基或其他什么

3 个答案:

答案 0 :(得分:5)

您应该使用definition listdldtdd):

<dl>

 <dt>Name</dt>
 <dd>FOo Bar</dd>

 <dt>Age</dt>
 <dd>27</dd>

 <dt>Weight</dt>
 <dd>151 kg</dd>

</dl>

规范说明它可以用于

  

术语和定义,元数据主题和值,问题和答案,或任何其他名称 - 值数据组。


我认为也可以使用tableth 。但是,当我想比较几个人时,我只会使用它,而不仅仅是列出一个人的数据。

答案 1 :(得分:1)

我要避免使用label标记,除非它与功能性HTML表单(带有可编辑字段)结合使用;否则,使用它可能会在语义上造成混淆。

span标记没有语义含义,无论添加的id或类如何,并且无论其使用的上下文如何。使用span(虽然没有任何伤害),你在语义上没有获得任何东西。

strong标记具有通用含义(此内容具有额外的重要性),该标记不会根据其使用的上下文而变化。当没有其他更合适的东西时,它有时很有用。

在这种特殊情况下,定义列表(由@unor建议)似乎是要走的路。如果需要高级样式,请将每个名称 - 值对放入一个单独的定义列表中(这在语义上可能很笨拙,但它可以更灵活地设置内容样式)。

答案 2 :(得分:0)

我想如果你想在语义上100%正确,那么你必须将标签与已禁用或只读文本框一起使用,这些文本框的样式看起来有点不同。