HTML5新标签dialog

3.png

HTMl5新的版本出现了一个有意思的标签,是我比较中意的,那就是对话窗或窗口,也就是dialog

# 基本用法
<dialog open>
  // somthing ...
</dialog>

open:规定 dialog 元素是活动的,用户可与之交互。
表示这个对话框可以进行互动.

兼容性(本篇文章使用chrome测试)

image.png

image.png

HTMLDialogElement

  • close()

关闭对话框。 可选传入类型为{domxref("DOMString")}}的参数,用来更新对话框的returnValue。摘自MDN

  • open()

非模式化的显示这个对话框, 即:打开这个对话框之后依然可以和其他内容进行交互。 可选传入类型为 Element 或者 MouseEvent 的参数,用来定义对话框的显示位置。摘自MDN

  • showModal()

模式化的显示这个对话框, 并且将会至于所有其他对话框的顶层(屏蔽其他对话框的交互)。 可选传入类型为Element 或者 MouseEvent 的参数, 用来定义对话框的显示位置。摘自MDN

来做一个demo玩玩吧

# 创建一个dialog
<dialog>
      <h1>我是一级标题</h1>
      <div>我是对话窗口,你已经打开了我!</div>
      <button id="close_dialog">关闭</button>
</dialog>
<button id="open_dialog">打开</button>
# js代码
<script>
      var dialog = document.getElementsByTagName("dialog")[0],
      openDialog = document.getElementById("open_dialog"),
      closeDialog = document.getElementById("close_dialog");
      openDialog.onclick = function(){
          dialog.showModal();// 或者show(),这是有区别的
      }
      closeDialog.onclick = function(){
          dialog.close();
      }
</script>

show()和showModal() 是有区别的,show只是显示dialog,而showMadal()是会屏蔽其他的弹出层

ESC可以关闭dialog,dialog需要重新定义css样式,毕竟本身css是默认的样式
我们先来看看dialog的元素默认样式:

dialog:not([open]) { // 显示的时候
    display: none;
}
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 {
    position: fixed;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    background: rgba(0, 0, 0, 0.1);
}

# 重置背景色
dialog::backdrop{
     background-color: rgba(0, 0, 0, 0.6)
 }
image.png

Demo

MDN链接:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,050评论 25 709
  • 本文会不定期更新,推荐watch下项目。 如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可...
    天之界线2010阅读 14,622评论 10 123
  • 亲爱的爸爸: 你好!我是以恩到了大学,我用文字记录心情感受的习惯还是没有改变,以前对你和妈妈有什么不满都是...
    我是以恩阅读 1,805评论 0 0
  • 苏霍姆林斯基说:"让学生变聪明的方法,不是补课,不是增加作业量,而是阅读,阅读,再阅读。" 新教材单元组合是双线的...
    鑫享人生的窝阅读 5,154评论 0 1
  • 0. 引言 本周最大的收获有两点,第一点个人回顾系统的优化,即在严哥个指导下,提高日计划的聚焦度,详细记录过程有血...
    菜鸟要成长阅读 1,297评论 0 0

友情链接更多精彩内容