Вложение тегов заголовков в теги li

Допустимо ли когда-либо вкладывать теги заголовков в теги элементов списка в элементе навигации HTML5, чтобы элементы списка навигации отображались в контурах? Это подтверждает, но правильно ли семантически иметь заголовок в элементе списка навигации? Есть ли способ заставить элементы навигации отображаться в контурах с помощью HTML5? Или я должен даже заботиться об этом?


person user3863320    schedule 22.07.2014    source источник
comment
Валидатор w3c говорит, что это хорошо. Документация ничего не говорит против.   -  person Ivan Ivanov    schedule 22.07.2014
comment
Как получилось, что у вас есть заголовки внутри навигации? Из-за оптимизации SE, нет, это плохая идея. Теги H используются в качестве заключения к тексту ниже. H1 должен быть сверху, виден и в единственном экземпляре. h2 после h1, изображая его текст, разделяя сайт на более мелкие, более конкретные части. SE использует их для получения информации, и они, среди заголовков, описаний и ключевых слов, являются наиболее мощными тегами: я вижу h1, h2 и title в результатах поиска и ключевых словах моих проектов. Ничего не знает о h3-h6, они бывают редко. Может быть, в навигации можно использовать h3-h6, но зачем?   -  person Ivan Ivanov    schedule 22.07.2014


Ответы (2)


Правила синтаксиса HTML5 позволяют использовать элементы заголовков h1, h2 и т. д. внутри элементов li. Однако он (как и все спецификации HTML) определяет элементы заголовков как заголовки для чего-то. Это неявно присутствовало в более ранних спецификациях, но стало более ясным в HTML5, который определяет, как заголовки участвуют в разделении документа на разделы. Заголовок для пустого раздела, хотя формально допустим, не имеет смысла, за исключением, возможно, временного состояния, когда содержимое еще не вставлено и будет добавлено в более поздней версии или с помощью сценария.

Технически, использование <nav><li><h2>foo</h2></li>...</nav> поместит «foo» в схему, как если бы в документе был раздел с заголовком «foo». Но вы вряд ли что-то выиграете таким образом, даже если схемы HTML5 будут иметь некоторую поддержку. А они нет; см. Структура документа HTML5 — опасная фикция.

person Jukka K. Korpela    schedule 22.07.2014

Мой ответ состоял бы в том, чтобы просто создать свой собственный div и обернуть в него свои навигационные элементы. Таким образом, вы можете изменить размер шрифта и все остальное, что вы хотите сделать из него. Забудьте о теге заголовка — это то, что я рекомендую, я бы не увидел в нем много полезного элемента в списках.

В CSS:

.myDiv {
   font-size: 20px;
   display: block;
   border: 2px solid black;
}

А затем назначьте его HTML

<div class="myDiv">Home</div>
<div class="myDiv">About</div>

и так далее. Надеюсь, это поможет, и что я понял ваш вопрос!

person ProDexorite    schedule 22.07.2014
comment
Это не решает вопрос. Речь шла о набросках. - person Jukka K. Korpela; 22.07.2014