Атрибут type тега <menu> — вигляд меню: список чи контекст


автор: NagarD

Загальний опис

автор: NagarD

Нотатка

Firefox підримує тільки type="context".

автор: NagarD

Синтаксис

<menu type="list|context|toolbar">

Атрибут type може отримувати 3 значень:

list

Створює контекстне меню.

автор: NagarD

context

Меню у вигляді панелі інструментів.

автор: NagarD

toolbar

Меню у вигляді списку.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft Internet Explorer
0 8.0 0 0 0

Мобільних переглядачів ще не додано.

Приклади

+ запропонувати свій приклад у пісочниці

Угорі чотири списки з тим самим вмістом: menu type="context", menu type="toolbar", menu без атрибута й звичайний ul. Вони однакові до пікселя — значення type не змінює нічого. Нижче те, чим ці два різновиди замінюють сьогодні: панель із кнопок у тому самому menu і розкривне меню на details та summary, яке справді відкривається клацанням.

HTML

<p class="head">Чотири списки з тим самим вмістом</p>

<div class="ryad">
  <div class="stovp">
    <p class="pidpys">menu type="context"</p>
    <menu type="context"><li>Копіювати</li><li>Вставити</li><li>Видалити</li></menu>
  </div>
  <div class="stovp">
    <p class="pidpys">menu type="toolbar"</p>
    <menu type="toolbar"><li>Копіювати</li><li>Вставити</li><li>Видалити</li></menu>
  </div>
  <div class="stovp">
    <p class="pidpys">menu без type</p>
    <menu><li>Копіювати</li><li>Вставити</li><li>Видалити</li></menu>
  </div>
  <div class="stovp">
    <p class="pidpys">ul</p>
    <ul><li>Копіювати</li><li>Вставити</li><li>Видалити</li></ul>
  </div>
</div>

<p class="note">Усі чотири однакові до пікселя: маркер, відступ ліворуч, висота.
   Значення type не змінює нічого, бо переглядач про нього не знає.</p>

<p class="head">Що робити замість type="toolbar"</p>
<menu class="panel">
  <li><button type="button">Копіювати</button></li>
  <li><button type="button">Вставити</button></li>
  <li><button type="button">Видалити</button></li>
</menu>
<p class="note">Той самий menu, тільки з кнопками всередині й стилями зовні: список
   команд, який виглядає й працює як панель.</p>

<p class="head">Що робити замість type="context"</p>
<details class="vypadaje">
  <summary>Дії над файлом</summary>
  <menu>
    <li><button type="button">Перейменувати</button></li>
    <li><button type="button">Перемістити</button></li>
    <li><button type="button">Видалити</button></li>
  </menu>
</details>
<p class="note">Розкривне меню на details і summary: працює всюди, керується з
   клавіатури й нічого не потребує, крім самої розмітки.</p>

CSS

.head {
    margin: 20px 0 8px;
    color: #5a6472;
    font: 600 14px/1.4 system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ryad {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.stovp {
    padding: 6px;
    border: 2px dashed #b9c6d8;
    border-radius: 6px;
}

.pidpys {
    margin: 0;
    color: #1b4f9c;
    font: 13px/1.6 ui-monospace, monospace;
}

.stovp menu,
.stovp ul {
    margin: 4px 0;
}

.note {
    max-width: 620px;
    margin: 8px 0 0;
    color: #5a6472;
    font-size: .9em;
}

.panel {
    display: flex;
    gap: 6px;
    max-width: 620px;
    margin: 0;
    padding: 6px;
    border: 1px solid #b9c6d8;
    border-radius: 6px;
    background: #f6f9ff;
    list-style: none;
}

.vypadaje {
    max-width: 260px;
    padding: 6px 10px;
    border: 1px solid #b9c6d8;
    border-radius: 6px;
    background: #f6f9ff;
}

.vypadaje summary {
    font-weight: 600;
    cursor: pointer;
}

.vypadaje menu {
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
}

.vypadaje li {
    margin: 3px 0;
}

button {
    padding: 4px 10px;
    font: inherit;
}
автор: NagarD

type="context" перетворював menu на контекстне меню правої кнопки — це реалізовував лише старий Firefox. Можливість вилучено з HTML: клац правою кнопкою показує звичайне системне меню.

<menu type="context" id="mymenu">
    <menuitem label="Оновити" onclick="window.location.reload();"></menuitem>
</menu>
<div contextmenu="mymenu">Клац правою кнопкою — власних пунктів у меню не буде.</div>
автор: NagarD

Різниця між HTML 4.01 та HTML5


Атрибут type тега <menu> з'явився тільки в HTML5. А сам тег <menu> перевизначений в HTML5


Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід