IE浏览器兼容性(原创)

532 阅读2分钟

1、背景

  由于甲方爸爸的电脑特别low,派任务下来就得兼容E11,具体什么原因咱就不说(社畜心酸,都是泪),后续如果有IE兼容性还会继续更新,目前此文章针对到IE11和IE10

2、项目版本

  此项目为vuecli3创建项目,vue版本为2.6.10,element-ui为2.15.7

3、具体需要修改的文件

3.1 vue.config.js

  默认情况下 babel-loader 会忽略所有 node_modules 中的文件。所以需要使用Babel 显式转译依赖,因此使用到了transpileDependencies,将部分不兼容IE11的依赖进行配置


module.exports = {
    //  选项...
    transpileDependencies: ['jsencrypt','js-md5']
    // 选项...
}

  此处我只是举例了jsencrypt(ie11),js-md5(ie10)组件,其他的需要配置的在transpileDependencies的值内新增即可,很多富文本编辑器是不兼容ie10的,例如quill。如果需要自行查找

注意: 笔者本人项目使用element-ui为2.15.7 不需要进行配置,其他版本是否需要配置,自行验证

3.2 router
//  路由-由import导入修改为require导入 
// component: () => import('@/views/login') 
// 修改为
//  component: (resolve) => require([`@/views/login`], resolve)
// 举例如下
const routes = [
 {
    name: 'Login',
    path: '/login',
    component: (resolve) => require([`@/views/login`], resolve),
    hidden: true
  }
]

const router = new Router({
  mode: 'hash',
  routes
})

3、细节点

3.1 正则表达式相关

当你的依赖组件里面含有如下,需要修改相关正则,避免使用,如果有此会导致项目首页就白板,如有其他可以补充

  • ?<=
3.2 CSS

目前我根据我现有项目代码发现的一些问题如下,如有其他可以补充

  • position 需要把left/right、top/bottom 默认值0写上 不要省略
  • img标签的max-height: 100%和max-heightt: 100%会失效 直接width: 100%;height: 100%;
  • flex布局的一些属性例如flex-wrap会失效,根据你UI自行使用其他方式进行 修改换行
  • 影响挺多的 input的placeholder的颜色 如果你对原始的input的输入文本颜色进行覆盖更改了,那么一定要针对ie浏览器覆盖更改placeholder的颜色,否则placeholder的颜色会和文本颜色一致,修改如下
   &:-ms-input-placeholder {
      color: #DDDDDD !important;
    }

-moz-代表firefox浏览器私有属性 -ms-代表ie浏览器私有属性 -webkit-代表safari chrome私有属性 -o-代表Opera

如有问题 留评与我沟通哦