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 相关文章推荐
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
Feb 18 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
JS实现transform实现扇子效果
Jan 17 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
德生PL550的电路分析
2021/03/02 无线电
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
python中bisect模块用法实例
2014/09/25 Python
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python TCP包注入方式
2020/05/05 Python
scrapy-splash简单使用详解
2021/02/21 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
医务人员自我评价
2014/01/26 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
新学期教师寄语
2014/04/02 职场文书
高中班级口号
2014/06/09 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
电工实训心得体会
2016/01/14 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js