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 相关文章推荐
javascript编程起步(第五课)
Feb 27 Javascript
JS等比例缩小图片尺寸的实例
Feb 27 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
jQuery鼠标事件总结
Oct 13 Javascript
详解ECharts使用心得总结
Dec 06 Javascript
jquery广告无缝轮播实例
Jan 05 Javascript
Vue.js 2.0中select级联下拉框实例
Mar 06 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
原生js实现俄罗斯方块
Oct 20 Javascript
原生JS运动实现轮播图
Jan 02 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
Python中列表的一些基本操作知识汇总
2015/05/20 Python
一道python走迷宫算法题
2018/01/22 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
医学实习生自我鉴定
2013/12/12 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2014年检验科工作总结
2014/11/22 职场文书
小班上学期个人总结
2015/02/12 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript