Правильно ли вкладывать списки определений HTML (<dl>)?

Является ли семантически правильным вкладывать списки определений или они должны быть просто «плоским списком пар имя / значение».

Спецификации вроде не запрещает.

Далее к этот вопрос.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
37
0
13 428
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Конечно. Нет ничего плохого во вложенных DL. Вы можете семантически иметь «подопределения».

Если он работает во всех браузерах, сделайте это.

Я знаю, что это может быть спорным, и многие люди, вероятно, сказать вам, что это не так, как он должен быть использован. Неписаные правила веб-дизайна, такие как использование списков практически для всего, - это именно то, что люди решили сделать. Нет причин, по которым вы должны использовать float (цель которого - разместить изображение внутри блока текста) для размещения каждой мелкой детали на веб-сайте. Но если вы попытаетесь использовать таблицы, вы, по-видимому, идиот из эпохи до пузыря, и вы не знаете, как проектировать.

Итак, делайте то, что хотите, и не усложняйте ситуацию только для того, чтобы решить проблему.

Сравнение дизайна таблицы и использования float немного несправедливо, всякий раз, когда вы извлекаете данные из файла HTML, вы фактически определяете значение данных с помощью предоставленных элементов, в то время как CSS - это чисто презентационное поведение, о семантической сети ...

Boris Guéry 01.05.2013 17:02
Ответ принят как подходящий

Что ж, спецификация, кажется, допускает это при условии, что только <dd> содержит вложенные списки. В спецификации указано, что <dt> является встроенным элементом, поэтому он не может содержать вложенный список. <dd> - это блочный элемент, поэтому внутренний список внутри одного из них вполне подойдет.

Firefox 48 и IE9 прекрасно справляются с прямым вложением DL как дочернего элемента DL. Google Chrome неправильно отображает: нет отступов; все осталось на одном уровне. Если вы заключите вложенный DL в тег DD, ничего не изменится в способе его отображения IE или FF. В Chrome отступ появляется, но между верхней частью вложенного списка и предыдущим элементом включающего списка есть уродливое лишнее пустое вертикальное пространство.

Kaz 10.09.2016 02:36

Интересный вопрос.

Верно, что DefLists предназначены для представления ключей и значений, но их кратность не 1, а 1+. Если такая сложность разрешена и с учетом того, что dt являются встроенными, я не вижу семантических проблем с представлением определения чего-либо в терминах дерева других вещей.

Я решил это, заменив вложенные списки определений неупорядоченным или упорядоченным списком, например.

<dl>
  <dd>Black hot drink</dd>
  <ul>
    <dd>White cold drink</dd>
    <ol>
      <dd>Red sweet drink</dd>
    </ol>
  </ul>
</dl>

Другие вопросы по теме