我正在尝试为 dialog
的背景添加模糊效果(我意识到 dialog
目前只提供有限的支持 - 我使用的是 Chrome v66
)。
我试过为 ::backdrop
添加模糊滤镜css(运气不好)和backdrop-filter
尚不支持。
有人知道我应该怎么做吗?
window.onload = function() {
document.getElementById('mydialog').showModal();
}
dialog::backdrop {
background: rgba(255, 0, 0, .25);
}
/* attempt #1 - using a blur filter */
dialog::backdrop {
-webkit-filter: blur(2px);
-moz-filter: blur(2px);
-o-filter: blur(2px);
-ms-filter: blur(2px);
filter: blur(2px);
}
/* attempt #2 - using backdrop-filter */
dialog::backdrop {
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
}
/* attempt #3 - using an svg */
dialog::backdrop {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><defs><filter id='blur'><feGaussianBlur stdDeviation='5' /></filter></defs><rect filter='url(%23blur)' fill='rgba(255,255,255,0.5)' x='0' y='0' width='100%' height='100%'/></svg>");
}
Here is some other text that I want blurred.
<dialog id="mydialog">This is the dialog window</dialog>
最佳答案
使用背景滤镜:
dialog::backdrop {
backdrop-filter: blur(1px);
}
关于css - 是否可以为 HTML5 对话框背景添加模糊效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51018582/