模态框居中

实现水平和垂直居中的模态框

实现方法

有多种方法实现模态框居中,这里介绍三种常用方法。

方法 1:Flexbox(推荐)

.modal-overlay {
  display: flex;
  align-items: center;
  justify-content: center;
}

方法 2:Transform + Absolute

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

方法 3:JavaScript 动态计算

function centerModal(modal) {
  const modalWidth = modal.offsetWidth;
  const modalHeight = modal.offsetHeight;
  const windowWidth = window.innerWidth;
  const windowHeight = window.innerHeight;

  const left = (windowWidth - modalWidth) / 2;
  const top = (windowHeight - modalHeight) / 2;

  modal.style.left = left + 'px';
  modal.style.top = top + 'px';
}

示例:居中模态框

点击按钮打开居中的模态框

模态框信息

窗口宽度: 0px
窗口高度: 0px
模态框宽度: 0px
居中方式: Flexbox

💡 推荐使用 Flexbox

Flexbox 是最简洁、最可靠的居中方法:
- 代码简单,易于理解
- 无需知道模态框的具体尺寸
- 完美响应式
- 浏览器兼容性好

总结

  • Flexbox 是最简单、最推荐的居中方法
  • Transform + Absolute 适合固定尺寸的模态框
  • JavaScript 方法适合动态计算的特殊场景
  • 使用 fixed 定位确保模态框始终相对于视口居中
  • 添加半透明遮罩层提升用户体验