我读过this并且我通常使用跨度或强度来描述“文本标签”。对于最佳实践,这是真的吗?它似乎也是一种语义方式,但为什么它只限于表单元素?
如果我想以这样的方式显示信息怎么办:
Name: FOo Bar
Age: 27
Weight: 151 kg
等?
名称,年龄和体重都可以描述为标签,但由于他们描述的项目不是输入标签,因此它在语义上不正确(至少对于html和w3c)。我通常使用
<span class="label"> or <span class="description"> or <span class="person-detail"> etc
但通常还应该有一个与输入字段无关的标签标签。由于这可能有点主观,我不介意这变成社区维基或其他什么
答案 0 :(得分:5)
您应该使用definition list(dl
与dt
和dd
):
<dl>
<dt>Name</dt>
<dd>FOo Bar</dd>
<dt>Age</dt>
<dd>27</dd>
<dt>Weight</dt>
<dd>151 kg</dd>
</dl>
规范说明它可以用于
术语和定义,元数据主题和值,问题和答案,或任何其他名称 - 值数据组。
我认为也可以使用table
(th
) 。但是,当我想比较几个人时,我只会使用它,而不仅仅是列出一个人的数据。
答案 1 :(得分:1)
我要避免使用label
标记,除非它与功能性HTML表单(带有可编辑字段)结合使用;否则,使用它可能会在语义上造成混淆。
span
标记没有语义含义,无论添加的id或类如何,并且无论其使用的上下文如何。使用span
(虽然没有任何伤害),你在语义上没有获得任何东西。
strong
标记具有通用含义(此内容具有额外的重要性),该标记不会根据其使用的上下文而变化。当没有其他更合适的东西时,它有时很有用。
在这种特殊情况下,定义列表(由@unor建议)似乎是要走的路。如果需要高级样式,请将每个名称 - 值对放入一个单独的定义列表中(这在语义上可能很笨拙,但它可以更灵活地设置内容样式)。
答案 2 :(得分:0)
我想如果你想在语义上100%正确,那么你必须将标签与已禁用或只读文本框一起使用,这些文本框的样式看起来有点不同。