Здравствуйте!
Решаю третий кейс из навыка «Создание семантической разметки» и меня возник вопрос по разметке сложной навигации в «подвале» сайта.
Авторы предоставляют следующий вариант разметки (я убрал блок с иконками социальных сетей и ссылкой на обратную связь, оставив только навигацию):
Эталонная разметка футера
<footer class="main-footer">
<dl class="main-footer-navigation">
<div>
<dt>О нас</dt>
<dd>
<ul class="about-list">
<li class="about-item">
<a href="#">О компании</a>
</li>
<li class="about-item">
<a href="#">Реквизиты</a>
</li>
<li class="about-item">
<a href="#">Контакты</a>
</li>
</ul>
</dd>
</div>
<div>
<dt>Сервис</dt>
<dd>
<ul class="services-list">
<li class="services-item">
<a href="#">Доставка</a>
</li>
<li class="services-item">
<a href="#">Оплата</a>
</li>
<li class="services-item">
<a href="#">Возврат</a>
</li>
</ul>
</dd>
</div>
<div>
<dt>Дополнительно</dt>
<dd>
<ul class="advanced-list">
<li class="advanced-item">
<a href="#">Скидочная карта</a>
</li>
<li class="advanced-item">
<a href="#">Бонусы</a>
</li>
</ul>
</dd>
</div>
</dl>
</footer>
Мои вопросы такие:
- Почему
<dl>
? Это действительно самый подходящий вариант с точки зрения семантики? - Каждая группа является пустым
<div>
без класса. Это хорошая практика? - Каждый список с навигацией (и их элементы) имеют разные классы. Разве это корректно? На макете они выглядят идентично. Нельзя ли использовать один класс для списков и один класс для элементов списка?
Также буду рад комментариями по моему варианту разметки.
Мой вариант разметки футера
<footer class="main-footer">
<ul class="footer-nav">
<li class="footer-nav-category">
<h3>О нас</h3>
<ul class="footer-nav-list">
<li class="footer-nav-item">
<a href="#">О компании</a>
</li>
<li class="footer-nav-item">
<a href="#">Реквизиты</a>
</li>
<li class="footer-nav-item">
<a href="#">Контакты</a>
</li>
</ul>
</li>
<li class="footer-nav-category">
<h3>Сервис</h3>
<ul class="footer-nav-list">
<li class="footer-nav-item">
<a href="#">Доставка</a>
</li>
<li class="footer-nav-item">
<a href="#">Оплата</a>
</li>
<li class="footer-nav-item">
<a href="#">Возврат</a>
</li>
</ul>
</li>
<li class="footer-nav-category">
<h3>Дополнительно</h3>
<ul class="footer-nav-list">
<li class="footer-nav-item">
<a href="#">Скидочная карта</a>
</li>
<li class="footer-nav-item">
<a href="#">Бонусы</a>
</li>
</ul>
</li>
</ul>
</footer>