使用CSS如何最好地显示名称值对?

时间:2020-03-05 18:52:59  来源:igfitidea点击:

我还是应该使用表格吗?

我要替换的表代码是:

<table>
    <tr>
        <td>Name</td><td>Value</td>
    </tr>
    ...
</table>

从我一直读的书中,我应该有类似的东西

<label class="name">Name</label><label class="value">Value</value><br />
...

想法和链接到在线示例非常感谢。我是超出我设计深度的开发人员。

编辑:我需要能够既向用户显示数据,又可以以单独的(但几乎相同)的形式编辑值。

解决方案

回答

我认为表格最适合用于表格数据,看来我们已经有了表格。

如果不想使用表,最好的方法是使用定义列表(<dl>和<dt>`)。这是如何设置它们的样式以使其看起来像旧的<td>布局。
http://maxdesign.com.au/articles/definition/

回答

我认为定义列表在语义上与名称/值对非常接近。

<dl>
    <dt>Name</dt>
    <dd>Value</dd>
</dl>

定义列表被误用还是被误解了?

回答

使用float:属性,例如:
CSS:

.left {
  float:left;
  padding-right:20px
}

的HTML:

<div class="left">
 Name<br/>
 AnotherName
</div>
<div>
 Value<br />
 AnotherValue
</div>

回答

对于表形式的数据使用表是完全合理的。

回答

如果我正在编写表单,则通常使用以下命令:

<form ... class="editing">
    <div class="field">
        <label>Label</label>
        <span class="edit"><input type="text" value="Value" ... /></span>
        <span class="view">Value</span>
    </div>
    ...
</form>

然后在我的CSS中:

.editing .view, .viewing .edit { display: none }
.editing .edit, .editing .view { display: inline }

然后,使用一些JavaScript,我可以从编辑到查看交换表单的类。

我之所以提到这种方法,是因为我们想要以几乎相同的布局显示和编辑数据,这是一种实现方法。

回答

像macbirdie一样,我倾向于将这样的数据标记为定义列表,除非可以将现有表的内容判断为实际上是表格形式的内容。

我会避免按照我们提出的方式使用标签标签。看一下标签标签的说明@ http://www.w3schools.com/tags/tag_label.asp,它的真正目的是让我们专注于其关联的控件。从语义的角度来看,还应避免使用通用的div和spans,因为它们比较弱。

如果我们在一个屏幕上显示多个名称/值对,但在编辑屏幕上仅编辑一个名称/值对,那么我将在前一个屏幕上使用一个表格,在后一个屏幕上使用一个定义列表。