使用 <details> 构建菜单和对话框是一个有趣的想法

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费信用额度!

使用 <details> 构建菜单可能是一个有趣的想法,但可能不适合实际投入生产。 参见 “有关 <details> 的更多详细信息” 以获取解释。

对于开始学习 JavaScript 的新手前端开发人员来说,最能让人感到有力量的事情之一就是 更改类。 如果你可以更改类,你就可以利用 CSS 技能来控制页面上的很多东西。 切换到一个类,以这种方式进行样式设置,切换到另一个类(或将其删除)并以另一种方式进行样式设置。

但是 HTML 元素也有切换功能! <details>!

例如,它绝对是 构建手风琴 UI 的最快方式.

扩展这种基于切换的思路,用户菜单如果不是一个手风琴,还能是什么呢? 模态框也是如此。 如果我们走这条路,我们可以让这些动态内容的 JavaScript 可选。 这正是 GitHub 在其菜单中所做的。

<details> 元素内部,GitHub 使用了一些 Web Components(需要 JavaScript)来完成一些额外的操作,但这些操作不是基本菜单功能所必需的。 这意味着该菜单具有弹性,并且在页面呈现时可以立即进行交互。

GitHub 的网络系统工程师 Mu-An Chiou 带头进行了这项工作,并有一个 关于此主题的演示文稿!

<details> 最糟糕的打击是它在 Edge 中的浏览器支持,但我猜我们很快就不必担心这个问题,因为 Edge 将使用 Chromium……很快吗? 有人知道吗?