— HTML | MDN
Experimental: Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
HTML-элемент <menu> представляет группу команд, которые пользователь может выполнить или активировать. Он включает как меню-списки, которые могут отображаться в верхней части экрана, так и контекстные меню, например, такие, что могут появиться под кнопкой после нажатия.
| Категории контента | Flow content. If the element’s children include at least one <li> element: Palpable content. |
|---|---|
| Допустимое содержимое | If the element is in the list menu state: flow content, or alternatively, zero or more occurrences of , <script>, and <template>. (list menu is the default state, unless the parent element is a <menu> in the context menu state.)If the element is in the context menu state: zero or more occurrences, in any order, of <menu> (context menu state only), <menuitem> (en-US), <hr>, <script>, and <template>. |
| Пропуск тегов | Нет, открывающий и закрывающий теги обязательны. |
| Допустимые родители | Любой элемент, который поддерживает основной поток. |
| Неявные ARIA-роли | list |
| Допустимые ARIA-роли | directory (en-US), group (en-US), listbox, menu (en-US), menubar (en-US), none (en-US), presentation (en-US), radiogroup (en-US), tablist (en-US), toolbar (en-US) или tree |
| DOM-интерфейс | HTMLMenuElement (en-US) |
К этому элементу применимы глобальные атрибуты.
labelУстарелоThe name of the menu as shown to the user. Used within nested menus, to provide a label through which the submenu can be accessed. Must only be specified when the parent element is a
<menu> in the context menu state.typeThis attribute indicates the kind of menu being declared, and can be one of two values.*
contextУстарело : Indicates the popup menu state, which represents a group of commands activated through another element. This might be as a button menu referenced by amenuattribute of a<button>element, or as context menu for an element with acontextmenu(en-US) attribute. This value is the default if the attribute is missing and the parent element is also aelement.<menu>
toolbar: Indicates the toolbar state, which represents a toolbar consisting of a series of commands for user interaction. This might be in the form of an unordered list of<li>elements, or, if the element has no<li>element children, flow content describing available commands. This value is the default if the attribute is missing.
The <menu> and <ul> elements both represent an unordered list of items. The key difference is that <ul> primarily contains items for display, whilst is intended for interactive items, to act on.
An HTML menu can be used to create context menus (typically activated by right-clicking another element) or toolbars.
Context menus consist of a <menu> element which contains <menuitem> (en-US) elements for each selectable option in the menu, <menu> elements for submenus within the menu, and <hr> elements for separator lines to break up the menu’s content into sections.
Context menus are then attached to the element they’re activated from using either the associated element’s attribute or, for button-activated menus attached to <button> elements, the menu attribute.
Toolbar menus consist of a <menu> element whose content is described in one of two ways: either as an unordered list of items represented by <li> elements (each representing a command or option the user can utilize), or (if there are no <li> elements), flow content describing the available commands and options.
This element was deprecated in HTML4, but reintroduced in HTML5.1 and the HTML living standard. This document describes the current Firefox implementation. Type ‘list’ is likely to change to ‘toolbar’ according to HTML5.1.
Устарело: Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления.
Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.
HTML
<!-- A <div> element with a context menu --> <div contextmenu="popup-menu">Right-click to see the adjusted context menu</div> <menu type="context"> <menuitem>Action</menuitem> <menuitem>Another action</menuitem> <hr /> <menuitem>Separated action</menuitem> </menu>
CSS
div {
width: 300px;
height: 80px;
background-color: lightgreen;
}
Result
Предупреждение: Menu buttons haven’t been implemented in any known browsers yet. The type attribute on the <menu> element is now obsolete.
Предупреждение: <menuitem> (en-US) element is obsolete.
HTML
<!-- A button, which displays a menu when clicked. --> <button type="menu" menu="popup-menu">Dropdown</button> <menu type="context"> <menuitem>Action</menuitem> <menuitem>Another action</menuitem> <hr /> <menuitem>Separated action</menuitem> </menu>
Result
Toolbar
Предупреждение: Toolbar menus haven’t been implemented in any known browsers yet.
HTML
<!-- A context menu for a simple editor,
- containing two menu buttons. -->
<menu type="toolbar">
<li>
<button type="menu" menu="file-menu">File</button>
<menu type="context">
<menuitem label="New...">
<menuitem label="Save...">
</menu>
</li>
<li>
<button type="menu" menu="edit-menu">Edit</button>
<menu type="context">
<menuitem label="Cut...">
<menuitem label="Copy...">
<menuitem label="Paste...">
</menu>
</li>
</menu>
Result
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard Определение ‘<menu>’ в этой спецификации. | Живой стандарт | No change from latest snapshot, Unknown |
| HTML 5.1 Определение ‘<menu>’ в этой спецификации. | Рекомендация |
BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
- Other list-related HTML Elements:
<ol>,<ul>,<li>,<hr>, and the obsolete<dir>(en-US). - The
contextmenuglobal attribute can be used on an element to refer to theof a idmenuwithtype="context".
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
Want to get more involved?
Learn how to contribute.
This page was last modified on by MDN contributors.
Меню | HTML | CodeBasics
Вернёмся к примеру из прошлых уроков:
<header> <img src="/logo.png" alt="Логотип"> <!-- Логотип сайта --> <div> <!-- Меню --> <ul> <li><a href="/">Главная</a></li> <li><a href="/about">О нас</a></li> <li><a href="/contacts">Контакты</a></li> </ul> </div> </header>
В нём меню сайта размечено с помощью обычного тега <div> с идентификатором menu. Как известно, такое обозначение работает для разработчиков, но не для браузеров. Они не понимают, что это меню, а не просто обёртка для списка.
Для создания полноценного меню используется парный тег <nav>, задача которого — разметить область страницы с основным меню. Также различные устройства для чтения с экрана, которыми пользуются люди со слабым зрением, используют этот тег, чтобы определить, стоит ли его отображать на странице.
Заменим <div></div> на изученный тег <nav>:
<header> <img src="/logo.png" alt="Логотип"> <!-- Логотип сайта --> <nav> <!-- Меню --> <ul> <li><a href="/">Главная</a></li> <li><a href="/about">О нас</a></li> <li><a href="/contacts">Контакты</a></li> </ul> </nav> </header>
Элемент nav, как и header не является уникальным для страницы. Его можно использовать для любого меню на странице, но есть несколько рекомендаций:
- Нет необходимости оборачивать каждое меню в элемент
nav. В основном такой областью указываются только основные меню. Дополнительные, такие как меню в футере, не оборачивают в тег<nav>, хотя это не запрещено. - Хороший пример дополнительного использования
nav— навигация по текущей странице. navможет содержать не только ссылки, но также и текст, в котором есть ссылки. Ориентируйтесь на здравый смысл.
Если навигация является основной для страницы или всего сайта, то оберните её в тег <nav>.
Задание
Создайте разметку «шапки» сайта. Расположите внутри картинку и меню из двух элементов. Используйте тег <nav> и маркированный список
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно 🙄Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
Оборачивайте в элемент навигации только основные меню сайта или отдельной страницы. Дополнительные меню не нуждаются в обёртке в тег
<nav>Навигация может быть в любой области страницы, а не только в шапке сайте
←Предыдущий
Следующий→
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.
com/hexlet-basics
Как создать вертикальное меню
❮ Назад Далее ❯
Узнайте, как создать вертикальное меню с помощью CSS.
Вертикальное меню
Главная страница Ссылка 1 Ссылка 2 Ссылка 3 Ссылка 4
Попробуйте сами »
Как создать вертикальную группу кнопок
Шаг 1) Добавьте HTML:
Пример
Шаг 2) Добавьте CSS:
Пример
.vertical-menu {
ширина: 200 пикселей; /* Установите ширину, если хотите */
}
.vertical-menu a {
background-color: #eee;
/* Серый цвет фона */
color: black; /* Черный текст
цвет */
отображение: блок; /* Сделать так, чтобы ссылки отображались ниже
друг друга */
padding: 12px; /* Добавляем отступы */
украшение текста: нет; /* Удалить подчеркивание из ссылок */
}
.
vertical-menu a:hover
{
фоновый цвет: #ccc; /*
Темно-серый фон при наведении мыши */
}
.vertical-menu a.active {
background-color: #04AA6D; /* Добавляем зеленый цвет к ссылке «активный/текущий»
*/
цвет: белый;
}
Попробуйте сами »
Меню вертикальной прокрутки
Главная Ссылка 1 Ссылка 2 Ссылка 3 Ссылка 4 Ссылка 5 Ссылка 6 Ссылка 7 Ссылка 8 Ссылка 9Ссылка 10
Задайте конкретную высоту и добавьте свойство overflow , если хотите меню с вертикальной прокруткой:
Пример
.vertical-menu {
width: 200px;
высота: 150 пикселей;
переполнение-у: авто;
}
Попробуйте сами »
Совет: Ознакомьтесь с нашим учебным пособием How To-Side Navigation, чтобы узнать, как создать фиксированную боковую навигацию во всю высоту.
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3.
CSS Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
800
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения.
Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.
Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования,
куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Панель навигации CSS
❮ Предыдущая Следующая ❯
Демонстрация: Панели навигации
Вертикальная
- Главная
- Новости
- Связаться с
- О
Горизонтальный
- Домашний
- Новости
- Связаться с
- О
- Дом
- Новости
- Связаться с
- О
Панели навигации
Удобная навигация важна для любого веб-сайта.
С помощью CSS вы можете превратить скучные HTML-меню в красивые панели навигации.
Панель навигации = Список ссылок
В качестве основы для панели навигации требуется стандартный HTML.
В наших примерах мы создадим панель навигации из стандартного HTML-списка.
Панель навигации — это, по сути, список ссылок, поэтому использование элементов
- и
- идеально подходит для
смысл:
Пример
Попробуйте сами »
Теперь давайте удалим маркеры, поля и отступы из списка:
Пример
ул. {
тип-стиля-списка: нет;
маржа: 0;
заполнение: 0;
}Попробуйте сами »
Объяснение примера:
-
list-style-type: none;— Удаляет пули. Панель навигации не требует маркеров списка - Установить
поля: 0;изаполнение: 0;удалить настройки браузера по умолчанию
Код в приведенном выше примере является стандартным кодом, используемым как в вертикальных, так и в горизонтальных панелях навигации, о которых вы узнаете больше в следующих главах.

-

(list menu is the default state, unless the parent element is a
png" alt="Логотип"> <!-- Логотип сайта -->
<div> <!-- Меню -->
<ul>
<li><a href="/">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/contacts">Контакты</a></li>
</ul>
</div>
</header>
png" alt="Логотип"> <!-- Логотип сайта -->
<nav> <!-- Меню -->
<ul>
<li><a href="/">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/contacts">Контакты</a></li>
</ul>
</nav>
</header>