使用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,因为它们比较弱。
如果我们在一个屏幕上显示多个名称/值对,但在编辑屏幕上仅编辑一个名称/值对,那么我将在前一个屏幕上使用一个表格,在后一个屏幕上使用一个定义列表。