JGuang

模态对话框

Modal · daisyUI

交互预览
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47

模态对话框

优先使用原生 dialog.showModal(),关联标题并测试 Escape 和关闭后焦点恢复。checkbox、锚点与原生 dialog 示例的无障碍行为不同,不能把 CSS 显示状态当成完整模态管理。

安装与初始化

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47

这是原生 CSS 插件,不是 React 组件导入。先用 Tailwind 4 和 daisyUI 插件生成并加载样式,再复制示例。完整步骤见随附安装指南;不要盲目覆盖宿主的 React 或 Tailwind 版本。

@import "tailwindcss";
@plugin "daisyui" { themes: light --default, dark --prefersdark; }

源码与真实交互

源码文件保留原始代码块、注释和演示文字。$$ 类名前缀占位符需按你的插件配置处理:未配置前缀时,$$btn 改为 btn。复制所选示例列出的全部源文件,按框架组合 HTML、CSS、JavaScript 并保留原生事件。预览的已审查事件适配器不是后端,也不会随 npm 命令自动安装到你的应用。

首个完整示例

<!-- Open the modal using ID.showModal() method -->
<button class="$$btn" onclick="my_modal_1.showModal()">open modal</button>
<dialog id="my_modal_1" class="$$modal">
  <div class="$$modal-box">
    <h3 class="text-lg font-bold">Hello!</h3>
    <p class="py-4">Press ESC key or click the button below to close</p>
    <div class="$$modal-action">
      <form method="dialog">
        <!-- if there is a button in form, it will close the modal -->
        <button class="$$btn">Close</button>
      </form>
    </div>
  </div>
</dialog>

全部可运行示例

原生对话框

modal-1

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-0.html
  • examples/modal/block-1.jsx

点击外部关闭的原生对话框

modal-2

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-2.html
  • examples/modal/block-3.jsx

右上角关闭按钮

modal-3

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-4.html
  • examples/modal/block-5.jsx

自定义宽度

modal-4

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-6.html
  • examples/modal/block-7.jsx

响应式布局

modal-5

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-8.html
  • examples/modal/block-9.jsx

Popover 模态示例

modal-6

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-10.html

点击外部关闭的 Popover 示例

modal-7

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-11.html

复选框控制

modal-8

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-12.html

点击外部关闭

modal-9

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-13.html

锚点链接控制

modal-11

npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
  • examples/modal/block-14.html

主题、无障碍与验证

使用原生 data-theme 主题边界。验证键盘、标签、可见焦点、适用的禁用/错误状态、深浅色、移动端和减少动画。检查目标浏览器的 dialog、popover 和 CSS 特性支持;类名不会补齐未实现的 JavaScript 或业务服务。卸载时清理计时器和第三方实例;复制命令不等于安装成功。

来源与许可证

https://github.com/saadeghi/daisyui/tree/c51f50130ffefb293179e6fce8de7ad3f307e45f

本页是 JGuang 编写的双语实用说明,不声称全文翻译上游文档。原始 Markdown、代码和 CSS 保留在源码查看器。保留 MIT 与各依赖独立声明;保守附上整个原生环境的许可,包括构建工具,但不分发构建二进制或远程演示图片。实际项目请替换为有使用权的素材,不包含商业模板。