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 相关文章推荐
Exitjs获取DataView中图片文件名
Nov 26 Javascript
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
js处理json以及字符串的比较等常用操作
Sep 08 Javascript
利用毫秒减值计算时长的js代码
Sep 22 Javascript
jQuery 插件开发指南
Nov 14 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python requests使用socks5的例子
2019/07/25 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
数学国培研修感言
2014/02/13 职场文书
社区食品安全实施方案
2014/03/28 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
质量承诺书格式
2014/05/20 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
房屋认购协议书
2015/01/29 职场文书
小学信息技术教学反思
2016/02/16 职场文书
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang