Это вопрос, с которым я боролся некоторое время. Каков правильный способ разметки пар имя/значение?
Я люблю <dl> элемент, но он представляет проблему: нет возможности отделить одну пару от другой - у них нет уникального контейнера. Визуально код не имеет определения. Семантически, однако, я считаю, что это правильная разметка.
<dl>
<dt>Name</dt>
<dd>Value</dd>
<dt>Name</dt>
<dd>Value</dd>
</dl>
В приведенном выше коде трудно правильно компенсировать пары визуально, как в коде, так и в рендеринге. Если бы я хотел, например, создать границу вокруг каждой пары, это было бы проблемой.
Мы можем указать на таблицы. Можно утверждать, что пары имя-значение являются табличными данными. Это кажется мне неправильным, но я вижу аргумент. Однако HTML не отличает имя от значения, кроме как в позиции, или с добавлением имен классов.
<table>
<tr>
<td>Name</td>
<td>Value</td>
</tr>
<tr>
<td>Name</td>
<td>Value</td>
</tr>
</table>
Это имеет больший смысл с визуальной точки зрения, как в коде, так и в CSS. Укладка вышеупомянутой границы тривиальна. Однако, как упоминалось выше, семантика в лучшем случае нечеткая.
Мысли, комментарии, вопросы?
Edit/Update
Возможно, это было то, что я должен был явно указать в отношении структуры, но в списке определений также есть проблема не семантической группировки пар. Опорная и неявная граница между a dd
и a dt
легко понятна, но они все еще слегка отключаются от меня.