浏览器与设备
了解 Bootstrap 支持的浏览器和设备,从现代到旧的,包括每个的已知怪癖和错误。
支持的浏览器
Bootstrap 支持所有主流浏览器和平台的 最新、稳定版本。
使用最新版本的 WebKit、Blink 或 Gecko 的替代浏览器,无论是直接使用还是通过平台的 WebView API,并未得到明确支持。不过,在大多数情况下,Bootstrap 在这些浏览器中也应该能够正确显示和运行。更具体的支持信息如下所示。
你可以在我们的 .browserslistrc file 中找到我们支持的浏览器及其版本:
# https://github.com/browserslist/browserslist#readme
>= 0.5%
last 2 major versions
not dead
Chrome >= 60
Firefox >= 60
Firefox ESR
iOS >= 12
Safari >= 12
not Explorer <= 11
not kaios <= 2.5 # fix floating label issues in Firefox (see https://github.com/postcss/autoprefixer/issues/1533)
我们使用 Autoprefixer 通过 CSS 前缀处理预期的浏览器支持,它使用 Browserslist 来管理这些浏览器版本。请查阅它们的文档以了解如何将这些工具集成到你的项目中。
移动设备
一般来说,Bootstrap 支持每个主要平台默认浏览器的最新版本。注意,不支持代理浏览器(例如 Opera Mini、Opera Mobile 的 Turbo 模式、UC Browser Mini、Amazon Silk)。
| Chrome | Firefox | Safari | Android 浏览器 & WebView | |
|---|---|---|---|---|
| Android | 支持 | 支持 | — | v6.0 |
| iOS | 支持 | 支持 | 支持 | — |
桌面浏览器
同样,大多数桌面浏览器的最新版本均受支持。
| Chrome | Firefox | Microsoft Edge | Opera | Safari | |
|---|---|---|---|---|---|
| Mac | 支持 | 支持 | 支持 | 支持 | 支持 |
| Windows | 支持 | 支持 | 支持 | 支持 | — |
对于 Firefox,除了最新的普通稳定版,我们还支持最新的 延长支持版本(ESR) 的 Firefox。
非官方地,Bootstrap 在 Linux 版的 Chromium 和 Chrome 以及 Linux 版的 Firefox 上应该表现良好并且运行正常,尽管它们没有官方支持。
Internet Explorer
不支持 Internet Explorer。 如果你需要 Internet Explorer 支持,请使用 Bootstrap v4。
移动设备上的模态框和下拉菜单
溢出与滚动
在 iOS 和 Android 上,对 overflow: hidden; 在 <body> 元素上的支持非常有限。为此,当你在这两种设备的浏览器中滚动超过模态的顶部或底部时,<body> 内容将开始滚动。请参阅 Chrome bug #175502(已在 Chrome v40 中修复)和 WebKit bug #153852。
iOS 文本字段和滚动
从 iOS 9.2 开始,当一个模态框打开时,如果滚动手势的初始触摸位于文本<input>或<textarea>的边界内,模态框下的<body>内容将被滚动,而不是模态框本身。参见 WebKit bug #153856。
导航栏下拉菜单
由于 z-index 的复杂性,.dropdown-backdrop 元素不会在 iOS 的导航中使用。因此,要关闭导航栏中的下拉菜单,必须直接点击下拉元素(或 任何其他会在 iOS 中触发点击事件的元素)。
浏览器缩放
页面缩放不可避免地会在某些组件中呈现渲染错误,无论是在 Bootstrap 还是其他网页中。根据具体问题,我们可能能够修复它(先搜索,然后如有必要再提交问题)。然而,我们通常会忽略这些问题,因为它们往往没有直接的解决方案,除了临时的应急方法。
验证者
为了向旧版和有漏洞的浏览器提供最佳体验,Bootstrap 在多个地方使用了 CSS 浏览器黑科技,以针对某些浏览器版本应用特殊 CSS,从而绕过浏览器本身的漏洞。这些黑科技会导致 CSS 校验器报错说它们无效,这是可以理解的。在少数情况下,我们还使用了尚未完全标准化的前沿 CSS 特性,但这些仅用于渐进增强。
这些验证警告在实际中无关紧要,因为我们 CSS 的非投机部分完全能够通过验证,而投机部分不会干扰非投机部分的正常功能,这就是为什么我们特意忽略这些特定警告的原因。
我们的 HTML 文档同样由于我们包含了针对 某个 Firefox 错误 的解决方法而存在一些微不足道且无关紧要的 HTML 验证警告。