Задать семантично заголовок для списка nav или ul

292
04 марта 2018, 23:02

Подменю. Есть вложенный список с заголовком.

<nav><ul><li>
    <a href="#">эл-2</a>
    <nav class="">
        <ul> ++ЗАГОЛОВОК++
            <li></li>                   
        </ul>
    </nav>
</li></ul></nav>

как будет семантично-правильно задать заголовок подменю? просто в ul первым элементом (пред li) сделать h3, например (<ul><h3>++ЗАГОЛОВОК++</h3><li>) ?

Answer 1

Вкладывать элемент навигации nav в другой элемент навигации nav - уже не семантично. Также, в элементе ul каждый элемент списка должен начинаться с тега <li> - иначе это тоже не семантично.

Вам нужно в первом элементе списка (не перед тегом li, а внутри него) указать заголовок, а если вам необходимо еще визуально выделить этот элемент, то просто добавьте элементу с заголовком класс и стилизуйте его. А после элемента с заголовком должен идти основной список. Примерно так:

 <nav>
   <ul>
     <li>
       <a href="#">эл-2</a>
       <ul>
         <li class="caption"><h3>++ЗАГОЛОВОК++</h3></li>
         <li>...</li>    
       </ul>
     </li>
   </ul>
 </nav>

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

HTML:

 <nav>
   <ul>
     <li>
       <h3 class="hidden">++ЗАГОЛОВОК++</h3>
       <a href="#">эл-2</a>
       <ul>
         <li>...</li>    
       </ul>
     </li>
   </ul>
 </nav>

CSS:

.hidden {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  visibility: hidden;
}
Answer 2

Все верно, на досуг почитать - хороший ресурс по сематике:
https://html5book.ru/html5-semantic-elements/

P.S. Пишу тут, пока закрыты коментарии.

READ ALSO
Объединение свойств CSS

Объединение свойств CSS

Здравствуйте, возможно ли сократить данный код:

209
тег в псевдоэлементе ::after

тег в псевдоэлементе ::after

Добрый деньЯ столкнулся со следующей проблемой: мне нужно поместить кнопку в псевдоэлемент

247
Jquery Accordion Script

Jquery Accordion Script

При повторном нажатии, нужно чтобы закрывалось, в моем случае он заново раскрываетсяКак предотвратить это?

250