实现一个水平竖直居中的弹窗,并带有遮罩层的布局,可以使用HTML、CSS和JavaScript来完成。以下是一个简单的示例:
HTML部分
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>居中弹窗示例</title><link rel="stylesheet" href="styles.css">
</head>
<body><div id="overlay" class="overlay"><div id="modal" class="modal"><div class="modal-content"><span class="close-btn" onclick="closeModal()">×</span><h2>弹窗标题</h2><p>这是一个水平竖直居中的弹窗。</p><button onclick="closeModal()">关闭</button></div></div></div><button id="openModalBtn">打开弹窗</button><script src="scripts.js"></script>
</body>
</html>
CSS部分 (styles.css)
body, html {height: 100%;margin: 0;font-family: Arial, sans-serif;
}.overlay {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5); /* 半透明遮罩层 */display: none; /* 初始隐藏 */justify-content: center;align-items: center;
}.modal {background-color: white;padding: 20px;border-radius: 8px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);max-width: 500px;width: 100%;text-align: center;
}.modal-content {position: relative;
}.close-btn {position: absolute;top: 10px;right: 10px;font-size: 24px;cursor: pointer;
}#openModalBtn {margin-top: 20px;padding: 10px 20px;font-size: 16px;cursor: pointer;
}
JavaScript部分 (scripts.js)
function openModal() {document.getElementById('overlay').style.display = 'flex';
}function closeModal() {document.getElementById('overlay').style.display = 'none';
}// 为打开弹窗按钮添加点击事件
document.getElementById('openModalBtn').addEventListener('click', openModal);
说明
-
HTML部分:
#overlay
是遮罩层,初始状态为隐藏 (display: none
)。#modal
是弹窗,包含内容。.close-btn
是关闭按钮,点击时调用closeModal()
函数。#openModalBtn
是打开弹窗的按钮,点击时调用openModal()
函数。
-
CSS部分:
.overlay
使用position: fixed
固定在屏幕上,并设置justify-content
和align-items
来使内容居中。.modal
设置背景颜色、内边距、边框半径和阴影效果,并限制最大宽度。.close-btn
设置关闭按钮的位置和样式。
-
JavaScript部分:
openModal()
函数显示遮罩层和弹窗。closeModal()
函数隐藏遮罩层和弹窗。- 为打开弹窗按钮添加点击事件,调用
openModal()
函数。
这样,一个基本的水平竖直居中的弹窗带遮罩层的布局就完成了。你可以根据需要进一步美化和定制。