Как сделать в html5 меню

Как сделать в html5 меню

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

В чем отличия

Прежде всего я хотел бы сказать, что спецификация не является уж такой и новой – она начала свое становление еще в 2009 году. Собственно, с тех пор происходит постоянное развитие – в html5 появляются новые возможности, современные браузеры все больше и больше поддерживают эти самые возможности, так что уже скоро можно будет говорить о полной поддержке этой технология, хотя она и не является чем-то единым целым, это скорее набор новых возможностей, каждая из которых является самостоятельной.

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

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

В nav можно поместить как список, так и просто набор ссылок. Мне кажется, это даже более простое и правильное решение, хотя во многих шаблонах по-прежнему видно реализацию меню с помощью тегов ul, li, a.

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

Как сделать с помощью html5 горизонтальное меню

Поскольку теперь ссылки можно помещать в семантический элемент nav, то создание горизонтальной навигации я вижу очень просто.

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

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

Тут нам придется преобразовывать наши пункты в блочные элементы. Для этого им нужно записать свойство:

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

Вертикальная навигация

Обычно, чтобы сделать вертикальное меню в html5 используют список, но нам годится и та разметка, которую я дал вам выше. Как вы увидели, если преобразовать ссылки в блочные, то они автоматически выстроятся друг за другом сверху вниз, потому что два блока не могут стоять на одной строке.

Теперь вы можете применить к ним нужные правила оформления. На блоки действует гораздо больше свойств, чем на строчный элемент, поэтому вы имеете куда больше возможностей. Для примера я добавил такие:

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

Что еще можно сделать

Наконец, давайте посмотрим, как можно сделать меню в html5 с изменением цвета пунктов при наведении. За добавление стилей к элементу при наведении отвечает псевдокласс hover. Соответственно, достаточно его добавить к ссылкам и написать нужные стили.

Теперь при наведении на ссылку она будет черного цвета, а фоновый цвет будет белым. Если вам нужно произвести изменение плавно, допишите свойство transition, значением которого выступает время в секундах, за которое должны поменяться стили.

Ну а что еще можно сделать с нашей навигацией, это уже вы сами можете решить. Это был просто пример того, как ее можно создать и оформить. Вы можете воспользоваться любыми css-свойствами, которые только знаете. Кстати, для очень эффектного оформления любых элементов на веб-странице я рекомендую вам просмотреть видеокурс по CSS3, который есть в нашем премиум-разделе.

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

Итак, сегодня мы с вами разобрали процесс создания простейшей навигации с помощью нового тега, а также посмотрели, как это оформить. Подписывайтесь на webformyself, если вам нравятся наши уроки и вы хотите знать о сайтостроении больше.

Метки:

Похожие статьи:

Комментарии Вконтакте: