Esta es una pregunta con la que he estado luchando durante un tiempo. ¿Cuál es la forma correcta de marcar pares de nombre / valor?
Me gusta el elemento <dl>, pero presenta un problema: no hay forma de separar un par de otro, no tienen un contenedor único. Visualmente, el código carece de definición. Semánticamente, sin embargo, creo que este es el marcado correcto.
<dl>
<dt>Name</dt>
<dd>Value</dd>
<dt>Name</dt>
<dd>Value</dd>
</dl>
En el código anterior, es difícil compensar correctamente los pares visualmente, tanto en código como renderizado. Si quisiera, por ejemplo, pero un borde alrededor de cada par, eso sería un problema.
Podemos señalar tablas. Se podría argumentar que los pares nombre-valor son datos tabulares. Eso me parece incorrecto, pero veo el argumento. Sin embargo, el HTML no diferencia el nombre del valor, excepto en la posición o con la adición de nombres de clases.
<table>
<tr>
<td>Name</td>
<td>Value</td>
</tr>
<tr>
<td>Name</td>
<td>Value</td>
</tr>
</table>
Esto tiene mucho más sentido desde un punto de vista visual, tanto en código como en CSS. Diseñar el borde antes mencionado es trivial. Sin embargo, como se mencionó anteriormente, la semántica es difusa en el mejor de los casos.
¿Pensamientos, comentarios, preguntas?
Editar / Actualizar
Quizás esto era algo que debería haber mencionado explícitamente en relación con la estructura, pero una lista de definiciones también tiene el problema de no agrupar semánticamente los pares. El orden y la frontera implícita entre una dd
y dt
es fácil de entender, pero todavía se siente un poco fuera de mí.