您现在的位置是:网站首页> 编程资料编程资料
使用HTML5原生对话框元素并轻松创建模态框组件html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
2023-10-16
458人已围观
简介 这篇文章主要介绍了使用HTML5原生对话框元素并轻松创建模态框组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
HTML 5.2草案加入了新的dialog元素。但是是一种实验技术。
以前,如果我们想要构建任何形式的模式对话框或对话框,我们需要有一个背景,一个关闭按钮,将事件绑定在对话框中的方式安排我们的标记,找到一种将消息传递出去的方式对话......这真的很复杂。对话框元素解决了上述所有问题。
Bootstrap 模态框和原生模态框的对比
下面是一个bootstrap模态框的html结构:
下面是一个原生模态框的HTML结构:
基础的模态框样式
我们已经看到了对话框元素的最简单标记,您可能已经注意到open是上面对话框中的属性。将该属性添加到元素将强制显示对话框,否则将删除它。该对话框也将绝对定位在页面上。

上图展示了一个最基本的模态框样式。
打开浏览器可以查看到它的基本样式是这样的:
dialog { display: block; position: absolute; left: 0px; right: 0px; width: -webkit-fit-content; height: -webkit-fit-content; color: black; margin: auto; border-width: initial; border-style: solid; border-color: initial; border-image: initial; padding: 1em; background: white; }dialog元素还引入了一个新的伪类选择器::backdrop,通过浏览器查看到默认的::backdrop样式如下:
dialog::backdrop { position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; background: rgba(0, 0, 0, 0.1); }设置对话框样式
我们可以像任何HTML元素一样设置dialog元素的样式,几乎所有的CSS样式都可以。通过::backdrop伪类选择器,我们可以用它来设置背景的样式。
例如:
dialog{ margin-top:200px; width:250px; height:250px; text-align:center; line-height:250px; border-radius: 4px; border: none; box-shadow: 0 0 15px lightgray; } dialog::backdrop { background: rgba(black, .5); }上面的样式效果如下图:

对话框操作 API
下面是一个基本的对话框,因为没有设置open属性,所以它不会在视觉上显示任何东西。您需要使用JavaScript API来显示/隐藏它:
dialog元素的.show()和.close()两个api分别是显示和关闭对话框,通过在DOM元素上使用这两个api,您可以显示和关闭对话框。
例如:
你可以传递一个参数给dialog.close()。通过监听dialog元素的close事件,该dialog.returnValue属性将返回给定的值。
如:
显示dialog对话框的另一个api是.showModal()
如果你不希望用户与对话框以外的其他页面元素对象进行交互,那么请使用.showModal()打开对话框而不是使用.show()。用.showModal()打开的对话框会有一个全窗口的半透明背景层,阻断用户与对话框之外的页面元素对象进行交互,同时对话框会默认显示在窗口正中间(上下左右都居中);而用.show()打开的对话框会默认显示在窗口顶部(可以通过css实现居中显示)。
关闭对话框后,close会触发一个事件。另外,用户可以通过输入“Escape”键来关闭模式对话框。这将激发cancel您可以取消使用的事件event.preventDefault()。
与表单集成使用
您可以使用form[method="dialog"]将表单与一个
此外,您可以使用该autofocus属性在弹出对话框时自动将焦点对准对话框内的窗体控件。
例如:
浏览器兼容性
桌面浏览器只有谷歌浏览器支持dialog的完整功能(到本博文发表时),要实现跨浏览器兼容请使用dialog-polyfill。
参考文献
参考文章:对话框元素演示
符本人开源项目
usuallyjs函数库:https://github.com/JofunLiang/usuallyjs
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 割绳子2 地下城 第7关 三星图文攻略_手机游戏_游戏攻略_
- 割绳子2 地下城 第8关 三星图文攻略_手机游戏_游戏攻略_
- 割绳子2 地下城 第9关 三星图文攻略_手机游戏_游戏攻略_
- 割绳子2 地下城 第10关 三星图文攻略_手机游戏_游戏攻略_
- 全民英雄熊猫酒仙怎么出装 全民英雄熊猫酒仙出装攻略心得_手机游戏_游戏攻略_
- 疯狂猜车标 41-60(关)答案_手机游戏_游戏攻略_
- 疯狂猜车标 61-80(关)答案_手机游戏_游戏攻略_
- 疯狂猜车标 81-100(关)答案_手机游戏_游戏攻略_
- 疯狂猜车标 101-120(关)答案_手机游戏_游戏攻略_
- 疯狂猜车标 121-140(关)答案_手机游戏_游戏攻略_
