IE9浏览器兼容问题总结

1、ie浏览器中a标签嵌套的图片出现蓝色边框

<Link to="/">//react 中的写法
     <img style={{"cursor":"pointer"}} src={this.state.logo} />
</Link>

解决方案:img标签增加样式border:none

<Link to="/">
      <img style={{"cursor":"pointer",border:"none"}} src={this.state.logo} />
</Link>

2、chrome浏览器中样式,但ie9中页面无样式

原因:ie浏览器对css文件大小有限制,当前css文件太大,ie无法加载。

具体限制要求如下:

KB 262161 outlines the maximum number of stylesheets and rules supported by Internet Explorer 6 to 9.

  • A sheet may contain up to 4095 rules
  • A sheet may @import up to 31 sheets
  • @import nesting supports up to 4 levels deep

更多详情(Stylesheet Limits in Internet Explorer):
https://blogs.msdn.microsoft.com/ieinternals/2011/05/14/stylesheet-limits-in-internet-explorer/

解决方案:

ie9样式表只能读取4095条规则,超出无法生效,就想下面的测试页面,ie9只能看到4094条红色,其他的是白色(即无样式);
https://demos.telerik.com/testcases/4095issues.html

①css文件压缩和第三方插件库样式按需引入:

webpack打包时已经对css进行压缩,当前使用的是antd的UI框架,直接引入了整个antd的样式,因此安装插件babel-plugin-import改为按需引入,缩小了文件大小。
具体参见:https://www.jianshu.com/p/ccdb52ac6a41

至此,我的问题已经解决了,但如果css文件依然很大,就需要第②方案。

②打包时将css文件分成多个小文件,则需要引入css-split-webpack-plugin 分割文件。

参考文章:https://blog.csdn.net/Napoleonxxx/article/details/80292006

3、ie9中react的input输入框onChange事件报错,无法识别react事件对象中的event.target.value(undefined)

解决方案:

changeTelephone(event){
        /*兼容ie9*/
        let value=event.target.value||this.refs.telephoneInput.value;
        this.setState({
            telephone:value
        });
}

//jsx结构部分
<input 
      ref="telephoneInput"  className="rbanner_part_info_box" placeholder="请输入手机号" 
      value={this.state.telephone}  onChange={this.changeTelephone.bind(this)}
/>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,444评论 1 45
  • 一、前言 做前端开发,必然少不了浏览器,然而不同的厂商有着各自版本的浏览器,不同的浏览器对css的理解和解析不一样...
    青鸣阅读 3,486评论 0 2
  • 什么是浏览器的兼容问题: 同一份代码有的浏览器效果正常,有的不正常。由于不同的浏览器对CSS的支持及解析结果不一样...
    我要认真学前端阅读 4,073评论 0 2
  • 1. 什么是 CSS hack 由于不同厂商的浏览器,比如Internet Explorer,Safari,Moz...
    andreaxiang阅读 3,821评论 0 5
  • 关于浏览器的兼容问题 1. 什么是 CSS hack 根据百度的简述:CSS hack由于不同厂商的浏览器,比如I...
    熊蛋子17阅读 3,998评论 0 2

友情链接更多精彩内容