HTML popover 弹出窗口属性

二十年来,模态一直是网站的重要组成部分。在桌面和移动设备上,堆叠内容和使用fetch 获取来完成任务是改善用户体验的好方法。遗憾的是,大多数开发人员都不知道 HTML 和 JavaScript 规范已经通过 popover 属性实现了原生模态系统,让我们一起来看看吧!

HTML

创建本地 HTML 模态包括使用 popovertarget 属性作为触发器,以及使用与 id 配对的 popover 属性来标识内容元素:

<!-- 
  "popovertarget" attribute will map to "id" of popover contents
-->
<button popovertarget="popover-contents">Open popover</button>
<div id="popover-contents" popover>This is the contents of the popover</div>

点击按钮后,弹出窗口将打开。不过,弹出窗口没有传统的背景层颜色,因此我们需要使用一些 CSS 技巧来实现。

CSS

弹出窗口内容的样式是非常标准的,但我们可以使用浏览器样式表选择器的伪选择器来样式化模态的 “background”:

/* contents of the popover */
[popover] {
  background: lightblue;
  padding: 20px;
}

/* the dialog's "modal" background */
[popover]:-internal-popover-in-top-layer::backdrop {
  background: rgba(0, 0, 0, .5);  
}

:-internal-popover-in-top-layer::backdrop 表示模态的 “背景”。传统上,用户界面是一个具有不透明度的元素,以显示堆叠关系。

阅读余下内容
 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


京ICP备12002735号