最近在做项目,要求兼容主流浏览器之外,还得兼容win7的IE8版本,因为很多客户还是老式win7电脑,甚至还有XP系统的,突然一口老血吐出。。。

好了,话不多说,上点自己平时踩坑后的一些心得。

一、框架选取

因为要兼容IE8,所以选框架的时候就排除了vue、react、angular这些MVVM框架。

最终选择了国内很好用的Layui框架(数据表格、弹窗、日历等),还有就是Jquery(1.11.1版本),别选高于2.0版本就行,高版本Jquery不兼容IE8了。

老码农都知道JQ很好用,开发的时候一点都不怂,拿到JQ就是干。

pass:以前面试了一个新码农,不会用JQ,只会vue,我表示理解,毕竟现在很多公司都不用考虑兼容了,但是不会JQ这个说不过去,毕竟DOM操作还是要会的。

二、代码部分

1、html部分

X-UA-Compatible和renderer的设置,可以让360这种双核浏览器默认用极速模式打开页面。

<!--[if lt IE 9]><![endif]-->这种写法是让IE9以下的浏览器引入对应的js,其中html5shiv是让H5标签可以得到支持,respond是让IE8支持css3媒体查询写法@media。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1"><meta name="renderer" content="webkit"><title>项目</title><!--[if lt IE 9]><script src="https://cdn.bootcdn.net/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/respond.js/1.4.2/respond.min.js"></script><![endif]-->
</head>
<body></body>
</html>

2、css部分

css写法尽量古老一点,不要用css3的属性去布局宽高这些,不然到了IE8就全乱了,像圆角,阴影,transition这些还是可以用的,毕竟用了页面也不会乱,只是到了IE8没那么好看了而已。

横向排列布局用float: left,尽量别使用display: inline-block。

css选择器使用first-child,别使用last-child。

opacity: 0.5; filter: alpha(opacity=50);

当然css也可以针对IE8单独写hack。

background: gray; /* 基本的 */
background: pink9; /* IE 8 及低于IE8版本 */
*background: green; /* IE 7 及低于IE7版本 */
_background: blue; /* IE 6 */

3、js部分

用Jquery操作dom是完全不用担心兼容问题的,数据交互可以用 $.ajax()。

然而,到了处理数据的时候,问题就来了,很多ES6很好用的方法不能用了。

同样,js写法尽量古老一点,像 forEach()、filter()、map() 这些就别用了,用我们古老的 for(){} 循环处理数据,推荐使用 jquery 的 $.each(),不管是循环 json,还是循环数组都很好用。

4、IE8注意事项

不支持localStorage sessionStorage,可以用document.cookie。

不支持addEventListener,可以用attachEvent。

input不支持placeholder,可以用jquery.placeholder.js。

css不支持user-select,可以在标签使用onselectstart="return false;"。


好了,先分享到这里,像Layui在IE8里面也是有很多坑的,在这里就不说框架了,有空会另开一个文章写Layui。

如有新的发现会持续更新,欢迎大家补充,一起学习。。。

兼容ie8_兼容IE8的一些笔记相关推荐

  1. html下拉列表兼容性,下拉菜单select样式设置(兼容IE6/IE7/IE8/火狐)

    复制代码代码如下: 兼容IE6/IE7/IE8/火狐---下拉菜单select样式设置 body {background-color:#6C6;} .select_border{ width:59px ...

  2. 分别兼容IE7,IE8,IE9,IE10,超简单一看就会

    分别兼容IE7,IE8,IE9,IE10,超简单一看就会 前端时间公司要求兼容IE7-IE10,在这里总结一下,大佬勿喷 针对IE7,IE6只对IE7,IE6生效的代码跟媒体查询用法一样 ` /* 只 ...

  3. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  4. [转载]使用兼容ie6 ie7 ie8 FF的text-overflow:ellips

    使用兼容ie6 ie7 ie8 FF的text-overflow:ellipsis超出文本显示省略号来代替截取函数更有利于seo,如果使用截取函数,源代码中的标题是显示不完整的,即便是在title属性 ...

  5. 【兼容】兼容IE8浏览器

    bootstrap3 兼容IE8浏览器 近期在使用bootstrap这个优秀的前端框架,这个框架非常强大,框架里面有下拉菜单.按钮组.按钮下拉菜单.导航.导航条.面包屑.分页.排版.缩略图.警告对话框 ...

  6. 让bootstrap兼容ie6 ie7 ie8 ie9 ie10 ie11的解决方法

    前两天遇到要bootstrap兼容ie各个版本的问题,但是各种百度,各种博客,最后算是解决了,但是迷迷糊糊的,现在来总结一下,如有雷同纯属总结. 首先看看代码的模样: <html> < ...

  7. div+css 完全兼容ie6 ie7 IE8 IE9 和firefox方法

    简单方法: IE6,IE7,IE8,FF的兼容方法(2) 浏览器兼容代码: 浏览器 符号 IE6 IE7 IE8 FF * !important _ \9 *html *+html 说明:代表能识别: ...

  8. 浏览器兼容:IE6,IE7,IE8,FIREFOX,Chrome

    javascript部分 1. document.form.item 问题 问题: 代码中存在 document.formName.item("itemName") 这样的语句,不 ...

  9. 兼容IE7、IE8、IE9的input type=number插件

    IE11版本好像才兼容input type="number",但是现在Win7版本操作系统下,很多人的IE版本都是IE7/8/9,所以为了体验就自己写了一个小插件,支持设置最大值. ...

最新文章

  1. 二维指针删除单向链表
  2. SAP PP MD04结果里没考虑受限使用库存?
  3. 网页右边固定php,左侧固定,右侧自适应的布局方式
  4. 计算机原理及其应用的题,微机原理及应用习题与答案(4)
  5. C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个
  6. mysql workbench启动_怎么启动mysql workbench
  7. python request库_【Python爬虫】Request库入门
  8. 设计模式——Bridge 桥模式
  9. 使用libevhtp编写HTTP服务器的方法
  10. 【备忘】Python编程实践视频教程+教材 27集 下载
  11. 中国移动(ECIA)云网工程师技术知识-立哥技术
  12. 并行计算中的BSP模型
  13. 阵列信号处理仿真二——波束方向图的绘制
  14. 第七届蓝桥杯 2016年省赛真题(Java 大学C组)
  15. JAVA-操作excel模版进行写入
  16. unable to create jaxbcontext 最终解决办法
  17. 异步电动机双闭环矢量控制SVPWM
  18. Python全局解释器锁(GIL)
  19. 51nod3054 听指挥打胜仗
  20. Threejs实现全景图功能

热门文章

  1. 《精通Nginx》——1.2 从源代码安装Nginx
  2. WebGL 浏览器函数
  3. (转)javascript关于运动的各种问题经典总结
  4. 【mysql】SQL常用指令
  5. erlang: Programming Rules and Conventions。
  6. Java中的显示锁 ReentrantLock 和 ReentrantReadWriteLock
  7. 霍夫变换MATLAB怎么实现,做过Matlab关于霍夫变换检测圆的高手请进
  8. mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...
  9. elastic ik分词搜索_php环境下使用elasticSearch+ik分词器进行全文搜索
  10. python求分段函数值_高中数学知识点整理(2)——函数概念及基本初等函数篇(上)...