浏览器和设备
了解引导支持的的浏览器和设备,包括已知的特性和每个的错误。
支持的浏览器
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。
Navbar下拉列表
.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在打印时使用非常小的字体大小。有关详细信息,请参阅问题#14868和WebKit错误#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验证警告。