换工作之后需要兼容ie8的我
以下是我ie8踩得坑,总结了一下,以免以后会遇到,虽然有的度娘也能搜到但是偶尔看看自己的文章也能学到很多(后续如有添加继续补上)
1,ie8 input框建议不要使用line-height去撑高度,在ie下并不会实现文字垂直居中,用padding值去撑开
2,ie8浏览器对特殊字符解析,(解决方法是用base64转码,有封装好的函数,base64encode(utf16to8(filename))和base64_decode();)如果是url建议使用encodeURI(需注意的是使用encodeURI传码的时候需要传两次,否则不生效,后台URLDecoder () )
3,ie8浏览器有时会出现空白页(是因为页面有不符合的注释还有有的标签在写的时候木有闭合)
4,
自我遇见的问题,ie8下foreach不兼容导致乱码
(
if (typeof Array.prototype.forEach != 'function') {
Array.prototype.forEach = function(callback){
for (var i = 0; i < this.length; i++){
callback.apply(this, [this[i], i, this]);
}
};
}
)
5,Bind不兼容
(function(){
if (!Function.prototype.bind) {
Function.prototype.bind = function (oThis) {
if (typeof this !== "function") {
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
}
var aArgs = Array.prototype.slice.call(arguments, 1),//数组对象转数组
fToBind = this,
fNOP = function () {},
fBound = function () {
return fToBind.apply(this instanceof fNOP && oThis
? this
: oThis,//用来测试一个对象在原型链中是否存在构造函数的prototype属性
aArgs.concat(Array.prototype.slice.call(arguments)));//类数组对象
};
fNOP.prototype = this.prototype;
fBound.prototype = new fNOP();
return fBound;
};
}
}())
6,eval函数不支持特殊符号,如:eval(‘langZh.’+text);
7,function参数不能为表达式,如:function(flag=0)
8,box-shadow兼容IE8写法,使用filter滤镜属性实
-moz-box-shadow:3px 5px 5px #969696;-webkit-box-shadow:3px 5px 5px #969696;box-shadow:3px 5px 5px #969696;filter: progid:DXImageTransform.Microsoft.Shadow(color='#cccccc',Direction=180, Strength=3);//说明: direction是阴影方位(角度),strength是阴影大小(半径),单位为度,可以为负数,color是阴影颜色 (尽量使用数字)9,使IE8浏览器支持背景半透明写法,使用filter滤镜属性实现
background: rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c000000,endColorstr=#4c000000);10,使用IE8浏览器支持背景图片半透明opacity,使用filter滤镜属性实现
filter: alpha(opacity=100);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
opacity: 1;
// 添加数组IndexOf方法if(!Array.prototype.indexOf){Array.prototype.indexOf=function(elt/*,from*/){varlen=this.length>>>0;varfrom=Number(arguments[1])||0;from=(from<0)?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++){if(frominthis&&this[from]===elt)returnfrom;}return-1;};}html标签的拼写一定要正确并且标签一定要用一些常用的标签,不要自己随意编写,如<up></up>是错误的标签,spn,spam,不符合规范的都会报错,此问题出现的最多,必须要规范标签写法
- 标签正确且常用
- 标签成对
- div嵌套要规范,嵌套层数太多时考虑有没有必要,尽量层数清晰。

换工作之后需要兼容ie8的我的更多相关文章
- 前端页面兼容ie8解决方法
一.通用兼容文件的引用: 1.HTML5标签兼容方案:html5shiv.js GitHub地址:https://github.com/aFarkas/html5shiv/ IE8不支持HTML5的新 ...
- 兼容IE8
由于IE8不支持HTML5,而它又是Win7的默认浏览器,我们即使讨厌它,在这几年却也拿它没办法. 最近做了个需要兼容IE8的项目,不可避免地用了HTML5+CSS3,甚至canvas和svg,做兼容 ...
- 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能
当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.ap ...
- 如何使用videojs兼容IE8浏览器
需要在服务器下运行 首先我们需要下载videojs包 https://github.com/videojs/video.js/releases 这里简单写了一个小栗子 <!DOCTYPE htm ...
- jQuery validate兼容IE8写法
最近做项目的时候遇到一个validate插件在IE8下面点击submit按钮没有执行检查的BUG 在chrome和FF,还有IE9以上都可以.百度了好多文章都没有找到解决方法,后面自己测试找到了问题. ...
- 兼容ie8 rgba()用法
今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1); 但是要兼容到 ...
- 【转】让Bootstrap 3兼容IE8浏览器
FROM : http://www.ijophy.com/2014/05/bootstrap3-compatible-with-ie8.html 最近在研究Bootstrap(官方,Github)这个 ...
- 让Bootstrap 3兼容IE8浏览器
最近在研究Bootstrap(官方,Github)这个优秀的前端框架,Bootstrap最开始是Twitter团队内部的一个前端框架,所谓前端框架就是一个CSS/HTML框架,框架里面有下拉菜单.按钮 ...
- css样式设置图片半透明度,兼容IE8,火狐
关于背景颜色透明的兼容浏览器的问题,一直是个问题,我所写的兼容IE8,和火狐,说是兼容所有浏览器我就没有测试,有兴趣的朋友可以自己测试下吧. background-color:white;filter ...
随机推荐
- Oracle创建新undo表空间最佳实践(包含段检查)
在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ...
- CDI services--interceptors(拦截器)
1.拦截器综述 拦截器的功能是定义在Java拦截器规范. 拦截器规范定义了三种拦截点: 业务方法拦截, 生命周期回调侦听, 超时拦截(EJB)方法. 在容器的生命周期中进行拦截 1 2 3 4 pub ...
- spring IOC 分析及实现
什么是IOC Inversion of Control,控制反转,也成依赖倒置. 反转: 依赖对象的创建被反转,使用IOC之前,对象由自己创建,反转后,由IOC容器获取 IOC容器的工作: 负责创建, ...
- VMware密匙
5A02H-AU243-TZJ49-GTC7K-3C61N 新版本密室:FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
- redis----------linux和mac如何安装redis和启动,关闭
1.打开官网https://redis.io/download.官网有安装命令 2.以下是我的执行过程截图 执行完官网给的命令以后,再执行 make PREFIX=/usr/local/redis ...
- PAT (Basic Level) Practice (中文)1022 D进制的A+B
1022 D进制的A+B 输入两个非负 10 进制整数 A 和 B (≤2^30^−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 ...
- sql 查询所有作业的详情
DECLARE @WeekDays TABLE ( freq_interval INT, weekdays ) ) INSERT INTO @WeekDays ,N'星期日 ' UNION ALL , ...
- 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10
1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...
- 日常开发自己遇到异常(BUG未完待续!!!)
在面试的时候经常会被问到你在项目中遇到的bug有哪些,或者你感觉你解决什么问题让你感觉有成就感.以此类似的面试问答,楼主现在开始不断更新日常遇到的BUG汇总 1:ConcurentModificati ...
- 【.NET】 HTTP协议之webrequest
零——简介 一.GET 二.POST emmm在post这里在了很多跟头,记忆很深刻. 2.1 传json的Post:简单粗暴的两个参数 一个是网址(接口),一个是json数据 分为了六个步骤 : ...