CSS 伪类 :modal 匹配或定位处于不与其外部元素进行任何交互的状态的元素,直到该交互被解除。
伪类 :modal 可以选择多个元素,但只有一个元素会处于活动状态并接收输入。
:modal 伪类可以选择的元素是以下一项或多项:
<dialog> 元素,可以使用 showModal API 打开。
由 :fullscreen 伪类选择的元素,可以打开通过 requestFullscreen API。
语法
:modal {
/* ... */
}
CSS :modal 示例
这里是 :modal 伪类的示例:
<html>
<head>
<style>
::backdrop {
background-image: url(images/border.png);
}
:modal {
border: 8px inset blue;
background-color: lightpink;
box-shadow: 3px 3px 10px rgba(0 0 0 / 0.5);
}
</style>
</head>
<body>
<dialog>
<button autofocus>关闭</button>
<p>模式对话框有一个好看的背景</p>
<p>并使用 :modal 伪类查看我的样式</p>
</dialog>
<button>打开看看效果</button>
<script>
const dialog = document.querySelector("dialog");
const showButton = document.querySelector("dialog + button");
const closeButton = document.querySelector("dialog button");
//"显示对话框"按钮以模态方式打开对话框
showButton.addEventListener("click", () => {
dialog.showModal();
});
//"关闭"按钮关闭对话框
closeButton.addEventListener("click", () => {
dialog.close();
});
</script>
</body>
</html>
在上面的示例中:
我们添加了一个按钮,用于打开带有对话框的模式。
我们使用 ::backdrop 伪元素添加了背景。
:模态伪类用于设置对话框的样式。