网站首页 > 基础教程 正文
有了新的 <dialog> 标记,前端开发将从此不同...
?之前:
看看我创建一个对话框要花费多少功夫。仅 CSS 就有近 20 行:
这还只是用于对话框功能的 CSS,它看起来仍然非常基本:
但是,使用新的 <dialog> 标签又如何呢?
? 现在:
<button id="open">Open</button>
<dialog id="dialog">
? Lighting strikes the earth 44 times every second!
? 闪电每秒击中地球44次!
</dialog>
JS:
const dialog = document.getElementById('dialog');
const open = document.getElementById('open');
open.addEventListener('click', () => {
dialog.showModal();
});
我们甚至可以使用 show() 方法来显示非模式对话框--没有背景,干扰较少:
const dialog = document.getElementById('dialog');
const open = document.getElementById('open');
open.addEventListener('click', () => {
// ? show() 方法
dialog.show();
});
对话框一直是强力吸引用户注意力并向其传递信息的有力方式。
从 Material Design 到 Fluent Design,它一直是每个用户界面设计系统的主打功能。
但是,即使它们再常见,我们也不得不借助第三方库或创建自定义组件来使用它们。
其中许多图书馆甚至没有遵循关于可用性和可访问性的官方建议......
例如:按 Escape 键应该可以解除页面上的对话框,但许多自定义对话框都不会这样做。
因此, <dialog> 改变了这一切。
自动打开对话框
open 属性使对话框从打开页面的那一刻起就一直处于打开状态:
<dialog id="dialog" open>
长颈鹿比人类更有可能被闪电击中。事实上,它们的可能性是人类的30倍。
</dialog>
自动关闭按钮
是的,可以使用标准事件侦听器和 close() 方法添加关闭功能:
const close = document.querySelector('#dialog .close');
close.addEventListener('click', () => {
dialog.close();
});
但是内置的 <dialog> 可以让这一切变得更加简单--无需 JavaScript:
<dialog id="dialog">
? 在 codingbeautydev.com 获取基本的编码技能和知识
<br />
<form method="dialog">
<button class="close">关闭</button>
</form>
</dialog>
如何正确设计
<dialog> 样式
<dialog> 有一个特殊的 ::backdrop 伪元素,用于设计背景墙的样式:
::backdrop {
background-image: linear-gradient(
45deg,
magenta,
rebeccapurple,
dodgerblue,
green
);
opacity: 0.75;
}
主要元素的样式简单明了:
dialog {
background-color: black;
color: white;
}
最后
有了新的 HTML <dialog> 标记,在我们的网络应用程序中创建模式和对话框变得前所未有的简单和快捷。
猜你喜欢
- 2024-10-29 将vue代码改写成react vue文件如何编译成html
- 2024-10-29 CKEditor 4.14:支持复制粘贴 LibreOffice 文档的富文本编辑器
- 2024-10-29 Vuejs通过浏览器导航关闭模态框,实现增强的用户体验
- 2024-10-29 jQuery UI 小部件(Widget)方法调用
- 2024-10-29 HTML5新增元素介绍及运用 html5新增的功能元素
- 2024-10-29 HTML 打印问题汇总 html怎么打印
- 2024-10-29 HTML 语法的变化,HTML5有哪些新的元素和属性
- 2024-10-29 Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
- 2024-10-29 WebView与JavaScript的交互 webview与js交互原理
- 2024-10-29 1-html基本知识 html的基本内容
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)