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表格文本启用选择复制功能具体实现
Oct 11 Javascript
采用call方式实现js继承
May 20 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
Angular中$state.go页面跳转并传递参数的方法
May 09 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
在小程序/mpvue中使用flyio发起网络请求的方法
Sep 13 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
微信小程序渲染性能调优小结
Jul 30 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 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
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
限制文本框输入N个字符的js代码
2010/05/13 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
javascript数组排序汇总
2015/07/07 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python全局变量操作详解
2015/04/14 Python
python实现中文转换url编码的方法
2016/06/14 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
什么是Python变量作用域
2020/06/03 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
药剂专业个人求职信范文
2014/04/29 职场文书
个人工作表现评价材料
2014/09/21 职场文书
暂住证明怎么写
2015/06/19 职场文书
python blinker 信号库
2022/05/04 Python