欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-15 08:16:43
bootstrap 是最受欢迎的 html、css 和 js 框架,用于开发响应式布局、移动设备优先的 web 项目。—— bootstrap 官网 bootstrap...

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>

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