浏览器和设备

了解引导支持的的浏览器和设备,包括已知的特性和每个的错误。

支持的浏览器

Bootstrap的最新稳定版本支持所有主流浏览器和平台。在Windows上,我们支持Internet Explorer 10-11 / Microsoft Edge

那些使用最新版本的WebKit,眨眼或壁虎的套壳浏览器,无论是直接还是通过网络视图API都未明确提供支持。但是,引导应该(在大多数情况下)在这些浏览器中正确显示和运行。下面提供了更具体的支持信息。

可以你在我们.browserslistrc file找到我们请立即获取iTunes的浏览器及其版本的范围:

# https://github.com/browserslist/browserslist#readme

>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30

我们使用Autoprefixer通过CSS前缀处理预期的浏览器支持,CSS使用前缀浏览器列表来管理这些浏览器版本。有关如何将这些工具集成到项目中的信息,请参阅其文档。

移动设备

一般来说,Bootstrap支持每个主要平台的默认浏览器的最新版本。请注意,不支持代理浏览器(如Opera Mini,Opera Mobile的Turbo模式,UC浏览器迷你,Amazon Silk)。

火狐 苹果浏览器 Android的浏览器和网页视图 Microsoft Edge
安卓的 支持的 支持的 不适用 支持Android v5.0 + 支持的
的iOS版 支持的 支持的 支持的 不适用 支持的
Windows 10移动版 不适用 不适用 不适用 不适用 支持的

桌面浏览器

同样,支持大多数桌面浏览器的最新版本。

火狐 IE浏览器 Microsoft Edge 歌剧 苹果浏览器
苹果电脑 支持的 支持的 不适用 不适用 支持的 支持的
视窗 支持的 支持的 支持,IE10 + 支持的 支持的 不支持

对于Firefox,除了最新的正常稳定版本,我们还支持最新的Firefox 扩展支持版本(ESR)版本。

非正式地,Bootstrap应该在Chromium和Chrome for Linux,Firefox for Linux和Internet Explorer 9中看起来和表现得足够好,尽管它们不受官方支持。

有关Bootstrap必须解决的一些浏览器错误的列表,请参阅我们的浏览器漏洞

IE浏览器

支持Internet Explorer 10+; IE9和下来不是。请注意,IE10中不完全支持某些CSS3属性和HTML5元素,或者需要前缀属性才能获得完整功能。访问我可以使用...了解有关CSS3和HTML5功能的浏览器支持的详细信息。如果您需要IE8-9支持,请使用Bootstrap 3。

移动设备上的模态和下拉菜单

溢出和滚动

在iOS和Android overflow: hidden;上,对<body>元素的支持非常有限。为此,当您在这些设备的浏览器<body>中滚动浏览模式的顶部或底部时,内容将开始滚动。请参阅Chrome错误#175502(已在Chrome v40中修复)和WebKit错误#153852

iOS文本字段和滚动

从iOS 9.2开始,当模态打开时,如果滚动手势的初始触摸位于文本<input>或a 的边界内<textarea><body>则模式下面的内容将被滚动而不是模态本身。请参阅WebKit错误#153856

.dropdown-backdrop由于z-indexing的复杂性,该元素未在导航中的iOS上使用。因此,要关闭导航栏中的下拉列表,您必须直接单击下拉元素(或将在iOS中触发单击事件的任何其他元素)。

浏览器缩放

页面缩放不可避免地在Bootstrap和Web的其余部分中呈现某些组件中的渲染工件。根据问题,我们可以修复它(首先搜索,然后根据需要打开问题)。但是,我们倾向于忽略这些,因为除了hacky变通方法之外,它们通常没有直接的解决方案。

粘性:hover/ :focus在iOS上

虽然:hover在大多数触摸设备上都无法实现,但iOS会模仿此行为,从而导致“粘性”悬停样式在点击一个元素后仍然存在。只有当用户点击其他元素时,才会删除这些悬停样式。这种行为在很大程度上被认为是不受欢迎的,并且在Android或Windows设备上似乎不是问题。

在我们的v4 alpha和beta版本中,我们添加了不完整和注释掉的代码,用于选择媒体查询垫片,这将禁用模拟悬停的触摸设备浏览器中的悬停样式。这项工作从未完全完成或启用,但为了避免完全破坏,我们选择弃用此填充程序并将mixins保留为伪类的快捷方式。

印花

即使在一些现代浏览器中,打印也可能很古怪。

从Safari v8.0开始,使用固定宽度.container类可能会导致Safari在打印时使用非常小的字体大小。有关详细信息,请参阅问题#14868WebKit错误#138192。一个可能的解决方法是以下CSS:

@media print {
  .container {
    width: auto;
  }
}

Android股票浏览器

开箱即用,Android 4.1(显然甚至是一些较新版本)随浏览器应用程序一起提供了默认的Web浏览器(与Chrome相反)。不幸的是,浏览器应用程序通常有很多错误和CSS的不一致。

选择菜单

<select>元素上,如果存在border-radius和/或已border应用,则Android股票浏览器将不会显示侧边控件。(有关详细信息,请参阅此StackOverflow问题。)使用下面的代码片段删除有问题的CSS并<select>在Android股票浏览器上呈现为无样式元素。用户代理嗅探可避免干扰Chrome,Safari和Mozilla浏览器。

<script>
$(function () {
  var nua = navigator.userAgent
  var isAndroid = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1 && nua.indexOf('Chrome') === -1)
  if (isAndroid) {
    $('select.form-control').removeClass('form-control').css('width', '100%')
  }
})
</script>

想看一个例子吗?看看这个JS Bin演示

验证器

为了给旧的和错误的浏览器提供最好的体验,Bootstrap 在几个地方使用CSS浏览器黑客将特定的CSS定位到某些浏览器版本,以便解决浏览器本身的错误。这些黑客可以理解地导致CSS验证者抱怨它们无效。在一些地方,我们还使用尚未完全标准化的前沿CSS功能,但这些功能仅用于渐进增强。

这些验证警告在实践中无关紧要,因为我们的CSS的非黑客部分确实完全验证并且hacky部分不会干扰非hacky部分的正常运行,因此我们故意忽略这些特定警告。

由于我们包含针对某个Firefox错误的变通方法,因此我们的HTML文档同样具有一些微不足道且无关紧要的HTML验证警告。