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 相关文章推荐
自己开发Dojo的建议框架
Sep 24 Javascript
javascript从右边截取指定字符串的三种实现方法
Nov 29 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 Javascript
Node.js用readline模块实现输入输出
Dec 16 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
js实现无缝滚动双图切换效果
Jul 09 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
Aug 20 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
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php array_map()函数实例用法
2021/03/03 PHP
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
python del()函数用法
2013/03/24 Python
python迭代器的使用方法实例
2013/11/21 Python
python进行两个表格对比的方法
2018/06/27 Python
Python unittest单元测试框架总结
2018/09/08 Python
Python3爬虫学习入门教程
2018/12/11 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
代理班主任的自我评价
2014/02/04 职场文书
资产运营委托书范本
2014/10/16 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python
java开发双人五子棋游戏
2022/05/06 Java/Android