Список определений

Автор: Евгений Рыжков Дата публикации: 26.07.2010

тег dlСписок определений — это один из самых запутанных и непонятных уголков стандарта HTML 4. Одни считают, что <dl> следует использовать только для разметки списка терминов (глоссарий). Их аргументы — это само название тега и описание в спецификациях.

W3C трактует тег dl довольно кратко:

Списки определений отличаются от других типов списков лишь тем, что списки <dl> состоят из двух частей: термин и описание. Термин задается элементом <dt> и может содержать текст и/или элементы строчного уровня (inline content). Описание задается элементом <dd>, который может содержать элементы уровня блок.

Другие же убеждены, что dl подходит для любых списков, где можно найти связь между парами значений. Второе мнение имеет право на жизнь, ведь в самих же спецификациях находим следующее:

Другое применение dl, это например, для разметки диалогов, где dt — это имя говорящего, а dd его текст.

Мне ближе второе мнение. Правильность его подтверждается еще и тем, что в HTML 5 dl описан уже немного иначе:

dl представляет собой ассоциативный список, состоящий из нуля и более пар имя-значение.

Все вроде предельно понятно.

Когда

Когда вовремя вспомнишь об этом теге в очередной верстке.

Где

Несколько примеров, где dl будет на своем месте:

Глоссарии
dl для глоссария
<dl>
<dt>ASCII <span>(American Standard Code for Information Interchange — американский стандартный код для обмена информацией)</span></dt>
<dd>
8-битная кодировка для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов.
</dd>
<dt>AJAX <span>(Asynchronous Javascript and XML — асинхронный JavaScript и XML)</span></dt>
<dd>
Подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в фоновом обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.
</dd>
</dl>
Диалоги
dl для диалога
<p>Мама пришла с работы, к ней подбегает Вовочка и говорит:</p>
<dl>
<dt>Вовочка:</dt>
<dd>Мамочка, а я посуду помыл!</dd>
<dt>Мама:</dt>
<dd>Молодец, Вовочка!</dd>
<dt>Вовочка:</dt>
<dd>Мамочка, а я полы помыл!</dd>
<dt>Мама:</dt>
<dd>Молодец, Вовочка!</dd>
<dt>Вовочка:</dt>
<dd>Мамочка, а у нас кошка Мурка беременная!!!</dd>
<dt>Мама:</dt>
<dd>Молодец, Вовочка!</dd>
</dl>
Анонсы новостей
dl для анонсов новостей
<dl>
<dt><span>26</span>/05</dt>
<dd><a href="news/10">КиноКлуб на Винзаводе — партнер арт-проекта Curriculum Vitae<span></span></a></dd>
<dt><span>12</span>/05</dt>
<dd><a href="news/5">Художник, холст и музыка Рахманинова. Спектакль "CV.Рахманинов"<span></span></a>
</dd>
</dl>
Формы
dl для форм
<form action="#">
<fieldset>
<dl>
<dt>Имя:</dt>
<dd><div class="inp"><input type="text" /></div></dd>
<dt>E-mail:</dt>
<dd><div class="inp"><input type="text" /></div></dd>
<dt>Сообщение:</dt>
<dd><div class=""forTexarea"><textarea rows="" cols=""></textarea></div></dd>
</dl>
<input value="Отправить" type="submit" />
</fieldset>
</form>
Характеристики
dl для характеристик
<dl>
<dt>Трансмиссия:</dt><dd>Автомат</dd>
<dt>Привод:</dt><dd>Задний (RWD)</dd>
<dt>Пробег:</dt><dd><span>10 000 км</span></dd>
<dt>Мощность:</dt><dd>280л/с</dd>
<dt>Объем двигателя:</dt><dd>3000</dd>
<dt>Модель двигателя:</dt><dd>2JZ-GTE</dd>
<dt>Кузов:</dt><dd>JZS147</dd>
</dl>

Вывод

Видишь ассоциативные связи, состоящие из пар имя-значение — смело применяй <dl>. Это будет логически (семантически) правильно.

Поправки на HTML5

update 15.04.11 by SelenIT С приходом HTML5 у нас как разработчиков прибавилось семантических тегов. В связи с чем область применения <dl> сократилась. Если быть точнее, то для списка новостей лучше использовать конструкцию из независимых логических блоков <section> или <article>. Для даты в таком случае используется тег <time>. А для диалогов появился специальный тег <dialog>.

Материалы

По теме