Popper.js 浏览器支持情况

Popper 支持现代版本的 Chrome、Firefox、Safari、Edge。 IE11 适用于一些 polyfill。 此外,应该支持任何基于 Chromium 的浏览器,例如 Opera、Beaker 等。


IE 11

IE11(以及一般的旧浏览器)需要 polyfills 才能工作。 让 Popper 工作的最简单方法是使用以下 polyfill 服务:

<script src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.find,Promise,Object.assign"></script>

不需要 polyfill 的浏览器不会受到 JS 包大小的影响

支持说明

如果您需要支持旧浏览器,请确保在使用 CDN 时将 Popper 的版本锁定为特定版本号。 在新版本中,我们可能会添加更多需要新 polyfill 的现代功能,否则 IE11 中的定位行为可能会中断,因为它完全未经测试。 我们不打算正式支持 IE11,但欢迎 PR 修复问题。 大多数情况下,IE11 似乎可以正常工作,但在某些情况下可能会出现边缘情况。


Safari

Safari 在更新 DOM 元素的位置方面有一些不幸的怪癖。 我们已经为这些提交了 WebKit 错误,所以希望它们能在未来得到修复。

在 macOS 和 iOS 上,当 popper 被阻止溢出根视口边界时,它可能会在滚动时出现滞后(不是 1:1 同步)。 对于 iOS,这也发生在滚动容器中。

我们建议仅针对 Safari 使用以下选项之一:

  • 将防止溢出修饰符( preventOverflow )的 rootBoundary 设置为“document”
  • 滚动时隐藏 popper

固定策略

在最新版本的 macOS Safari 中,当弹性过度滚动(橡皮筋效果)正在进行时,固定元素将与参考元素分离,因为它们不再包含弹性过度滚动 - Safari 报告滚动包含。 在 iOS 上,这不是问题。

此外,在滚动文档时,也会出现上述的轻微滞后,因为滚动时需要不断更新popper,而Safari并不擅长。 理想情况下,此策略应仅在参考元素固定时使用,而不应将 popper 从剪辑容器上下文中“打破”。


IE10 以及更早版本浏览器

早于 2013 年的浏览器(包括 Android 4.4)将永远不会得到支持,因为它们变得越来越过时并为库增加了大量复杂性(运行时和捆绑)成本。

我们鼓励任何 Internet Explorer 用户升级到 Microsoft Edge,他们的最新版本基于 Chromium,允许毫无问题地呈现所有现代网站,但仍提供兼容模式来呈现旨在与 Internet Explorer 一起使用的旧网站。

查看笔记

扫码一下
查看教程更方便