CSS и HTML5: Респонсив навигационное меню. Создание контекстного меню

30.03.2019

Внутри контейнера

список формируется с помощью
  • .

    В HTML4 элемент

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

      Синтаксис

    • пункт меню
    • пункт меню
    • Закрывающий тег

      Обязателен.

      Пример

      MENU

      В этом выпуске:

    • Русская кухня. Уха бурлацкая
    • Украинская кухня. Вареники
    • Молдавская кухня. Паприкаш
    • Кавказская кухня. Суп-харчо
    • Прибалтийская кухня. Вертиняй
    • Результат данного примера показан на рис. 1.

      Рис. 1. Вид списка, созданного с помощью

      MENU

    • Примечание

      Firefox поддерживает только создание контекстного меню, когда значение атрибута type равно context .

      Спецификация

      Каждая спецификация проходит несколько стадий одобрения.

      • Recommendation (Рекомендация ) - спецификация одобрена W3C и рекомендована как стандарт.
      • Candidate Recommendation (Возможная рекомендация ) - группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
      • Proposed Recommendation (Предлагаемая рекомендация ) - на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
      • Working Draft (Рабочий проект ) - более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
      • Editor"s draft (Редакторский черновик ) - черновая версия стандарта после внесения правок редакторами проекта.
      • Draft (Черновик спецификации ) - первая черновая версия стандарта.

      Особняком стоит живой стандарт HTML (Living ) - он не придерживается традиционной нумерации версий, поскольку находится в постоянной разработке и обновляется регулярно.

      Элемент

      не нов для HTML, но в пятой версии языка изменилось его лексическое назначение. Теперь он представляет собой список команд, который в зависимости от установленного значения атрибута type может выполнять три различных функции — контекстное меню, панель инструментов (toolbar) и произвольное меню с командами:

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

      и обрабатывает его следующим образом:

      1. Если встречается команда, то она добавляется в меню с учетом ее атрибутов.
      2. Элемент
        , а также
      3. Если встречается
      4. или
      5. Встретив элемент

      Давайте рассмотрим подробнее способы добавления команд. В зависимости от действия при нажатии, команды делятся на три типа, описанные в следующей таблице:

      HTML 5 предлагает также универсальный элемент , позволяющий создавать любые типы команд, устанавливая его атрибут type в одно из значений: command , radio или checkbox . Он обладает собственными атрибутами, повторяющими почти все возможности других элементов для создания команд.

      Заголовок команды определяется в значении атрибута label . Можно также привязать к команде изображение, указав его абсолютный путь в атрибуте icon .

      Чтобы объединить несколько переключателей в группу, применяется атрибут radiogroup (обязательный для переключателей). Достаточно указать одинаковое значение для всех элементов одной группы. В случае с применением элементов для этого применяется «родной» атрибут name , а несколько

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

      Независимо от выбранного способа добавления команды, вы можете присвоить ей комбинацию клавиш для быстрого доступа, указав атрибут accesskey , о котором шла речь в главе «Элементы ввода ». Можно также указать accesskey не в самой команде, а в связанном с ней элементе

      с требуемой командой.

      Создание контекстного меню

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

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

      Кликни правой кнопкой, чтобы открыть контекстное меню.

    • Пункт 1
    • Пункт 2
    • 5 комментариев

      Любопытно и даже область применения весьма обширная. Жаль из-за ослика.... Ослик скоро вымрет... Нужно осваивать эту тему. Я рискнул взять на нормальный проект. Только не контекст... Ссыкотно с этими драфтами Любопытно что всё это не работает на данный момент ни в одном браузере, ибо в HTML5 данный тег ни в одном браузере не реализован. тоесть получается всё это теория на будущее и на данный момент практической ценности не имеет. поправьте если ошибаюсь Simple Green Menu

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

      В чем отличия

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

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

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

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

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

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

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

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

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

      display : block ;

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

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

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

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

      a{ text-decoration: none; color: #fff; padding: 5px; font-size: 22px; display: block; background: linear-gradient(to right, rgba(96,108,136,1) 0%,rgba(63,76,107,1) 100%); width: 200px; text-align: center }

      text - decoration : none ;

      color : #fff;

      padding : 5px ;

      font - size : 22px ;

      display : block ;

      background : linear - gradient (to right , rgba (96 , 108 , 136 , 1 ) 0 % , rgba (63 , 76 , 107 , 1 ) 100 % ) ;

      width : 200px ;

      text - align : center

      Спецификация

      Описание

      Тег

      предназначен для отображения списка пунктов меню. Аналогично тегам
        и
          внутри контейнера список формируется с помощью тегов
        • .

          В HTML4 тег

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

            Синтаксис

            HTML
          • пункт меню
          • пункт меню
          • HTML5 ...

            Атрибуты

            Устанавливает видимую метку для меню. Задает тип меню.

            Закрывающий тег

            Обязателен.

            Валидация

            Использование этого тега осуждается спецификацией HTML4, валидный код получается только при использовании переходного . В HTML5 применение тега

            корректно.

            HTML 4.01 IE Cr Op Sa Fx

            Тег MENU

            В этом выпуске:

          • Русская кухня. Уха бурлацкая
          • Украинская кухня. Вареники
          • Молдавская кухня. Паприкаш
          • Кавказская кухня. Суп-харчо
          • Прибалтийская кухня. Вертиняй
          • Результат данного примера показан на рис. 1.

            Рис. 1. Вид списка, созданного с помощью тега

            HTML5 IE Cr Op Sa Fx

            Тег MENU

          • Creating dropdown menu for the websites is no more a new trend as it has been accepted very well all over the world. By using dropdown menu, designers cannot only create a visual appeal in the website design but can also provide an effective navigation scheme for the website. HTML5 and CSS3 have made creating visually appealing dropdown menu quite easy.

            Here, we are presenting some of the free dropdown menus that were developed by using HTML5 and CSS3 . We hope that you will like this collection and find it useful for you. Do share your opinions with us via comment section below. Let us have a look and feel free to share it with friends as well. Enjoy!

            This dropdown menu can give your website very elegant and impressive sliding box navigation. Moreover, a submenu box can also be integrated with this in order to make it more appealing.

            This is a very simple CSS3 based animated navigation menu that can degrade quite gracefully to be used in older browsers as well as it is future proof so that you can use it with the next generation of browsers as well.

            With this CSS3 based animated dropdown menu, one can add beautiful transitions and transforms to his website or template, and add a polished look to his website.

            With this dropdown menu, you can achieve two level menus for easy navigation.

            In this dropdown menu, only CSS is used and there are no images in this dropdown menu. Moreover, it is cross browser compatible and optimized for IE7.

            This is another very elegant and classy type of dark CSS3 menu template that you can use on your website as well.

            As the name of this dropdown menu suggests, it is a creative piece of dropdown menu that can give a website a very unique and pleasing look.

            If you are looking for some inspiration for creating a marble style CSS3 based navigation then this dropdown menu can serve you with lots of inspiring ideas. This horizontal dropdown CSS3 menu will be suitable for black and for white websites.

            With CSS3, one can easily create various types of dropdown menus. One simply has to connect with his imagination power and the outcome can be mind-blowing. In this dropdown menu, when you hover on the upper menu items, the submenu items appear whirling.

            This is another great example of creativity and skill. This is a multilevel CSS3 based dropdown menu with transition and animation. This is UL-LI-based multilevel menu.

            This dropdown menu is also created by using CSS3 and sub menus are created by using animation with some amazing transition effects. Keep in mind that these new effects work only in the freshest browsers.

            This is another UL-LI based CSS3 dropdown menu that looks like the menu on Microsoft website. This click action CSS3 based dropdown menu is created with the help of jQuery.

            Here is another one-click action multilevel CSS3 based dropdown menu where submenu appears on click action and not on hover.

            Here is another two level CSS3 based dropdown menu where submenu slides when you hover the parent elements. This is a pure CSS based dropdown menu with no JS. It renders perfect on Firefox, Chrome and Safari browsers.

            15. Multilevel CSS3 Metal Navigation with icons

            This is another multilevel CSS3 based dropdown menu with icons in metal style that looks extremely beautiful. This is also UL-LI based menu.

            This dropdown menu comes with slide out submenus that give it very stylish look. The colored tabs add further beauty in the overall look. The sliding effect work in Firefox, Chrome, and Safari and possibly in Opera too.

            17. CSS Drop-Down Menu Framework

            Another CSS based dropdown menu framework that is clean, standards-friendly, free, easy to use and cross browser framework.

            18. Drop-down Nav Menu With HTML5, CSS3 and JQuery

            This dropdown menu is created by using CSS3, HTML5 and jQuery for easy and friendly navigation menu. JQuery is used to handle effects and add finishing touches as well.

            Here is another multilevel dropdown menu that is like Mac. Border-radius, box-shadow, and text-shadow have been used in creating this menu. It renders perfect on Firefox, Safari and Chrome.

            Here is another CSS3 animated menu. Powerful CSS3 effects and transitions are used here in order to build a JS free animated navigation menu.

            21. Kick-Butt CSS3 Mega Drop-Down Menu

            This is a mega menu that is common on ecommerce websites because it can display a lot of content while keeping the layout clean. It is cross browser compatible menu.

            This is another stunning example of CSS3 based navigation menu that can a sophisticated look to any website or template.

            This is another mega menu based on CSS3 and HTML5 that can be used to display a relatively large content in a neat and clean layout. This includes 5 containers with blocks of content and lists.

            CSS3 keyframes property is used to create an appealing flashy effect. Initially, the menu is in gray color but on hover, the menu color changes to very light bluish gray color to a dark blue color over a period of 200ms.

            This fancy navigation menu is created with JQuery using .animate() techniques and .clone() so that we can get two stacks menu item (the red and white stack).

            Here, CSS3 is used to create sweet tabbed navigation.

            This jQuery style like menu is created by using some CSS3 transitions that can replace all the fancy jQuery animation one day. The animated sliding vertical menu looks good.

            28. Fun Animated Navigation Menu With Pure CSS

            This is a navigation menu which you can use to add a polished look to your website or template. It uses @font-face, transforms and transitions. It renders perfect on Firefox, Safari and Chrome.

            29. CSS3 Wheel Menu

            Here, CSS3 is used to create an awesome, layered CSS3 wheel menu that looks amazing and can give your website a very nice look.

            30. The Fanciest Dropdown Menu You Ever Saw

            This dropdown menu shows that one can create the fanciest dropdown menu by using CSS3.

            Using dropdown menus have become a must-to-have thing in desktop applications, and with CSS and jQuery one can achieve the desired results.

            LavaLamp effect is based on jQuery plugin and here CSS3 transitions are used to achieve that result without any JavaScript.

            33. 3-Level Navigation Menu

            This is a multilevel dropdown menu that you can use on your website to display large content while keeping the layout neat and clean.

            This musical drop down menu is created using HTML5 and CS3 animation effects.

            This is a very stylish and vertical multicolor 3D CSS3 based dropdown menu for adding a fine look to your website. This is UL-LI-based menu.