<menu>: Phần tử Menu

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phần tử <menu> trong HTML được mô tả trong đặc tả HTML là lựa chọn thay thế ngữ nghĩa cho <ul>, nhưng được trình duyệt xử lý (và được hiển thị qua cây tiếp cận) không khác gì <ul>. Nó đại diện cho một danh sách không có thứ tự các mục (được đại diện bởi các phần tử <li>).

Try it

<div class="news">
  <a href="#">NASA's Webb Delivers Deepest Infrared Image of Universe Yet</a>
  <menu>
    <li><button id="save">Save for later</button></li>
    <li><button id="share">Share this news</button></li>
  </menu>
</div>
.news {
  background-color: bisque;
  padding: 1em;
  border: solid thin black;
}

menu {
  list-style-type: none;
  display: flex;
  padding: 0;
  margin-bottom: 0;
  gap: 1em;
}

Thuộc tính

Phần tử này cũng chấp nhận các thuộc tính toàn cục.

compact Deprecated

Thuộc tính Boolean này gợi ý rằng danh sách nên được hiển thị theo kiểu compact. Cách hiểu thuộc tính này phụ thuộc vào trình duyệt. Hãy sử dụng CSS thay thế: để tạo hiệu ứng tương tự thuộc tính compact, thuộc tính CSS line-height có thể được sử dụng với giá trị 80%.

Ghi chú sử dụng

Cả hai phần tử <menu><ul> đều đại diện cho một danh sách không có thứ tự các mục. Sự khác biệt chính là <ul> chủ yếu chứa các mục để hiển thị, trong khi <menu> đại diện cho một thanh công cụ chứa các lệnh mà người dùng có thể thực hiện hoặc kích hoạt.

Note: Trong các phiên bản đầu của đặc tả HTML, phần tử <menu> có thêm trường hợp sử dụng như một menu ngữ cảnh. Chức năng này được coi là lỗi thời và không có trong đặc tả.

Ví dụ

Thanh công cụ

Trong ví dụ này, <menu> được sử dụng để tạo một thanh công cụ cho ứng dụng chỉnh sửa.

HTML

html
<menu>
  <li><button onclick="copy()">Copy</button></li>
  <li><button onclick="cut()">Cut</button></li>
  <li><button onclick="paste()">Paste</button></li>
</menu>

Lưu ý rằng điều này về mặt chức năng không khác gì:

html
<ul>
  <li><button onclick="copy()">Copy</button></li>
  <li><button onclick="cut()">Cut</button></li>
  <li><button onclick="paste()">Paste</button></li>
</ul>

CSS

css
menu,
ul {
  display: flex;
  list-style: none;
  padding: 0;
  width: 400px;
}

li {
  flex-grow: 1;
}

button {
  width: 100%;
}

Kết quả

Tóm tắt kỹ thuật

Danh mục nội dung

Nội dung luồng. Nếu các con của phần tử bao gồm ít nhất một phần tử <li>: Nội dung hữu hình.

Nội dung được phép

Không hoặc nhiều lần xuất hiện của <li>, <script><template>.

Bỏ qua thẻ Không, cả thẻ mở và thẻ đóng đều bắt buộc.
Phần tử cha được phép Bất kỳ phần tử nào chấp nhận nội dung luồng.
Vai trò ARIA ngầm định list
Vai trò ARIA được phép directory, group, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar hoặc tree
Giao diện DOM HTMLMenuElement

Thông số kỹ thuật

Specification
HTML
# the-menu-element

Tương thích trình duyệt

Xem thêm

  • Các phần tử HTML liên quan đến danh sách khác: <ol>, <ul>, và <li>.