Bootstrap 3浏览器兼容性问题及解决方案


Posted in Javascript onApril 11, 2017

Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。—— Bootstrap 官网

Bootstrap 来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript的,它简洁灵活。开发过程中,我们只需通过给DOM元素添加相应的class即可调用,使得 Web 开发更加快捷。

接下来进入主题,谈谈 Bootstrap 3 浏览器兼容性问题及其对应的解决方案:

1、移动设备支持情况

Bootstrap 3浏览器兼容性问题及解决方案

2、PC端支持情况

Bootstrap 3浏览器兼容性问题及解决方案

注:Windows 支持 IE 8-11。

请参考 浏览器支持情况 以获取详细的 Bootstrap 3在各个浏览器上的支持情况。

如上述所示,IE8 是被支持的。然而,很多 CSS3 属性和 HTML5 元素是不被支持的。例如,Bootstrap 的响应式布局是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分辨率来匹配不同的样式,IE8浏览器并不支持这一优秀的CSS3特性。Bootstrap在开发文档中已经明确指出, IE8 需要 Respond.js 配合才能实现对媒体查询(media query)的支持。按照官方文档,笔者在HTML文件<head></head>标签底部添加了如下的代码:

<!--[if lt IE 9]>
   <script src="https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script>
 <![endif]-->

注:其中 html5shiv.min.js 文件是让不(完全)支持html5的浏览器支持 html5 标签;respond.js 文件是让IE8实现对媒体查询(media query)的支持。

但是,在IE8浏览器中打开页面发现,兼容性问题并没有得到解决(坑、坑、坑)。通过查阅相关资料,笔者总结几点注意事项(效果实现的关键):

  • 本地调试需要Web Server(如IIS、Apache,Nginx),单纯地本地打开文件不能看到兼容效果;
  • 如果你发现已经引用了 respond.js 和 Bootstrap,仍无效果,请查看你的Bootstrap是否使用了CDN文件;
  • Bootstrap3 需要Html5文档声明;
  • Jquery 版本需要在2.0以下。

模板代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
 <!-- 编码格式 -->
 <meta charset="UTF-8">
 <title></title>
 <!-- 作者 -->
 <meta name="author" content="author">
 <!-- 网页描述 -->
 <meta name="description" content="hello">
 <!-- 关键字使用","分隔 -->
 <meta name="keywords" content="a,b,c">
 <!-- 禁止浏览器从本地机的缓存中调阅页面内容 -->
 <meta http-equiv="Pragma" content="no-cache">
 <!-- 用来防止别人在框架里调用你的页面 -->
 <meta http-equiv="Window-target" content="_top">
 <!-- content的参数有all,none,index,noindex,follow,nofollow,默认是all -->
 <meta name="robots" content="none">
 <!-- 收藏图标 -->
 <link rel="Shortcut Icon" href="favicon.ico" rel="external nofollow" >
 <!-- 网页不会被缓存 -->
 <meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
 <!-- 解决部分兼容性问题,如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。 -->
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <!-- 页面按原比例显示 -->
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="plugin/bootstrap-3.3.0/css/bootstrap.min.css" rel="external nofollow" >
 <!--[if lt IE 9]>
  <script src="https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script>
 <![endif]-->
</head>

<body>

 <script src="plugin/jquery/jquery-1.11.2.min.js"></script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 Javascript
用js实现计算加载页面所用的时间
Apr 02 Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 Javascript
分享5个顶级的JavaScript Ajax组件库
Sep 16 Javascript
这应该是最详细的响应式系统讲解了
Jul 22 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 Javascript
vue-cli创建的项目中的gitHooks原理解析
Feb 14 Javascript
移动端JS实现拖拽两种方法解析
Oct 12 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 #Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 #Javascript
基于vuejs实现一个todolist项目
Apr 11 #Javascript
vue实现todolist单页面应用
Apr 11 #Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 #Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
Apr 11 #Javascript
javascript数组去重常用方法实例分析
Apr 11 #Javascript
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
基于PHP生成静态页的实现方法
2013/05/10 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
python内打印变量之%和f的实例
2020/02/19 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
什么是python的id函数
2020/06/11 Python
python如何爬取网页中的文字
2020/07/28 Python
python实现AdaBoost算法的示例
2020/10/03 Python
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
内衣营销方案
2014/03/15 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
文化产业实施方案
2014/06/07 职场文书
家装业务员岗位职责
2015/04/03 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技