css部分
1 nth-of-type选择器 2 span:nth-of-type(1) 3 /*IE8兼容写法*/ 4 span:first-child /*选中第一个*/ 5 span:first-child+span+span /*选中第三个*/
IE8不支持 :last-child 选择器、calc属性
js部分
关于new Date()的坑
1 var myDate = new Date(); 2 var date = myDate.toLocaleDateString( );//每个浏览器转化格式化不一致 巨坑 3 //采用拼接方式 可根据需要拼接成任何想要的格式 4 date = myDate.getFullYear() + "-" + ((myDate.getMonth() + 1) < 10 ? "0"+(myDate.getMonth() + 1) : (myDate.getMonth() + 1)) + "-" + (myDate.getDate() < 10 ? "0"+myDate.getDate() : myDate.getDate());
1 //在IE8上用new Date("2021-06-09") 会直接返回NaN 2 //可采用以下方式 3 function timeFormat(time){ 4 var isoExp = /^s*(d{4})-(dd)-(dd)s*$/, date = new Date(NaN), month, parts = isoExp.exec(time); 5 if(parts) { 6 month = +parts[2]; 7 date.setFullYear(parts[1], month - 1, parts[3]); 8 if(month != date.getMonth() + 1) { 9 date.setTime(NaN); 10 } 11 } 12 return date; 13 }
js保留字和关键字
在谷歌浏览器上import可以作为变量,但是在IE8上会报错
input取值和设值只能用val()不能用text(),否则会报错
input使用val()有时候会报错,不支持属性或者方法,需要改用attr("value"),来设值。
HTML部分
button标签的坑
给某个按钮绑定了点击事件,在IE8上,随便敲击键盘的回车键,都会触发button的点击事件(Ps:目前没找到原因)
最后说一下,如果你是才出来工作的小白,面试遇到要兼容IE8的公司,什么都不要说,告诉面试官,对不起,请把我的简历还给我,然后走人,兼容IE8更多靠的是经验。
明年六月,微软就要正式停止IE8的运营了,你再继续去搞兼容IE8,那么就会和新技术越来越远,要知道前端的技术迭代是很快的。放弃,是一个寿命有限的前端对IE应有的态度,哈哈哈哈哈哈
(ps:该文章还会持续更新到我不做兼容为止,第一次发布时间为2021年7月1日,祝党建100周年,生日快乐。人名有信仰,民族有希望,国家有力量。爱我的祖国,伟大的中华民族)。