bootstrap3 兼容IE8浏览器!


Posted in Javascript onMay 02, 2016

      近期在使用bootstrap这个优秀的前端框架,这个框架非常强大,框架里面有下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等,bootstrap都已经预先定义好了,当我们制作网页上,只需直接调用里面的css即可

bootstrap是一个响应式的布局,你可以在宽屏电脑、普通电脑,平板电脑,手机上都得到非常优秀的布局体验。这种响应式的布局正是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分辨率来匹配不同的样式。IE8浏览器并不支持这一优秀的Css3特性,Bootstrap在开发文档中写了如何使用进行兼容IE8,如果想兼容IE6,IE7,可以搜索bsie (bootstrap2)

Bootstrap在IE8中肯定不如Chrome、Firefox、IE11那么完美,部分组件不保证完全兼容,还是要Hack的

1、使用html5声明

<!DOCTYPE html>
这里不可以有空格
<html>

注:写成<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">是不可行的

2、加入meta标签

确定显示此网页的IE版本

<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
<meta http-equiv="X-UA-Compatible" content="IE=9" />

注:bootstrap不支持IE兼容模式,为了让IE浏览器运行最新的渲染模式,将添加以上标签在页面中,IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame

3、引入bootstrap文件

<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet">

4、引入html5shiv.min.js和respond.min.js

让不(完全)支持html5的浏览器“支持”html5标签

<!--[if lt IE 9]>
<script src="js/bootstrap/html5shiv.min.js"></script>
<script src="js/bootstrap/respond.min.js"></script>
<![endif]-->

5、添加1.X版本的Jquery库

<script src="js/bootstrap/jquery-1.12.0.min.js"></script>

6、在IE8下测试,发现一个问题placeholder不被支持,下面是解决IE支持placeholder的方法,本文引用的jquery是1.12.0测试通过,先引用jquery

<script type="text/javascript" src="js/bootstrap/jquery-1.12.0.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>

也可以用其他的jquery版本,再引入

[code]<script type="text/javascript" src="js/bootstrap/jquery.placeholder.js"></script>
然后在文件中加入一下代码

<script type="text/javascript">
 $(function () {
 $('input, textarea').placeholder();
 });
</script>

代码总结如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
 <meta name="author" content="zhy" />
 <title>ie8</title>
 <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
 <!--[if lte IE 9]>
 <script src=js/bootstrap/respond.min.js"></script>
 <script src=js/bootstrap/html5shiv.min.js"></script>
 <![endif]-->
 <script src="js/bootstrap/jquery-1.12.0.min.js"></script>
 <script src="js/bootstrap/bootstrap.min.js"></script>
</head>
<body>
</body>
</html>

附注:

1、IE下判断IE版本的语句

<!--[if lte IE 6]>
<![endif]-->
IE6及其以下版本可见
 
<!--[if lte IE 7]>
<![endif]-->
IE7及其以下版本可见
 
<!--[if IE 6]>
<![endif]-->
只有IE6版本可见
 
<![if !IE]>
<![endif]>
除了IE以外的版本
 
<!--[if lt IE 8]>
<![endif]-->
IE8以下的版本可见
 
<!--[if gte IE 7]>
<![endif]-->

IE7及大于IE7的版本可见
lte:就是Less than or equal to的简写,也就是小于或等于的意思。
lt :就是Less than的简写,也就是小于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
! : 就是不等于的意思,跟javascript里的不等于判断符相同

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

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

Javascript 相关文章推荐
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
JavaScript函数详解
Feb 27 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
layui 对弹窗 form表单赋值的实现方法
Sep 04 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
JavaScript嵌入百度地图API的最详细方法
Apr 16 Javascript
javascript实现列表切换效果
May 02 #Javascript
基于javascript编写简单日历
May 02 #Javascript
Bootstrap媒体对象的实现
May 01 #Javascript
Bootstrap进度条组件知识详解
May 01 #Javascript
BootStrap glyphicons 字体图标实现方法
May 01 #Javascript
JS实现左右无缝轮播图代码
May 01 #Javascript
JavaScript中的继承之类继承
May 01 #Javascript
You might like
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
新浪新闻小偷
2006/10/09 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
在Python中使用成员运算符的示例
2015/05/13 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
Python程序运行原理图文解析
2018/02/10 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
Oracle性能调优原则
2012/05/03 面试题
国际商务系学生个人的自我评价
2013/11/26 职场文书
面试后的英文感谢信
2014/02/01 职场文书
主题婚礼策划方案
2014/02/10 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
二手房购房协议书范本
2014/10/05 职场文书
超级礼物观后感
2015/06/15 职场文书
婚礼父母致辞
2015/07/28 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python