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 静态对象和构造函数的使用和公私问题
Mar 02 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
Js与下拉列表处理问题解决
Feb 13 Javascript
js仿苹果iwatch外观的计时器代码分享
Aug 26 Javascript
jQuery绑定事件on()与弹窗的简要概述
Apr 27 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
JavaScript设计模式之单例模式详解
Jun 09 Javascript
详解angularJS自定义指令间的相互交互
Jul 05 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
vue-cli安装使用流程步骤详解
Nov 08 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
uni-app之APP和小程序微信授权方法
May 09 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
php时间函数用法分析
2016/05/28 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
详解Python中with语句的用法
2015/04/15 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
详解Python3 pickle模块用法
2019/09/16 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python3 xpath和requests应用详解
2020/03/06 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
报到证丢失证明
2014/01/11 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
廉政承诺书2015
2015/04/28 职场文书
mysql sock文件存储了什么信息
2022/07/15 MySQL