前端面试——浏览器兼容问题

一、css样式兼容性问题

  1. ie8浏览器不支持css3,像:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. ie8对选择器支持情况
    ie8支持:first-child,但不支持:last-child、:last-of-type、:first-of-type、:nth-child(n)、:nth-last-child(n)、:nth-of-type(n)、:nth-last-of-type(n)、:enable、:disable 、:checked
    ie8对before伪类不支持,引入兼容库js后,定位仍会出现问题,须修改边距值
  3. css hack
    “-″减号是IE6专有的hack
    “\9″ IE6/IE7/IE8/IE9/IE10都生效
    “\0″ IE8/IE9/IE10都生效,是IE8/9/10的hack
    “\9\0″ 只对IE9/IE10生效,是IE9/10的hack
    ie8也不支持flex布局,须改成其它布局;

二、js语法

  1. 添加dom监听事件
    .addEventListener = function (type,listener,useCapture ) { };
    //第一个参数 事件名称
    //第二个参数 事件处理函数(监听者)
    //第三个参数 true捕获 false冒泡
    //IE9以后才支持
    // 兼容旧环境
  2. IE8的数组对象没有forEach方法,晕。所以自行声明即可。
  3. . 数组的indexOf()方法在IE8中的兼容性问题
  4. ie8浏览器不支持endsWith,trim(),startsWith等方法,在使用中就会遇见兼容性问题
  5. array.filter(); 参考文件
  6. ie8 的数组没有map方法

三、dom标签表现形式

  1. dom默认自定义样式
  2. dom定义样式
  3. video标签兼容
    解决方法:在ie八浏览器下引入html5media.min.js 需要注意的是 把 三个文件放在同一文件夹下面. video 的width和height不要用百分比尽量用具体的像素(本人在ie8下面宽度用100%,html5media.min.js要报错)。
    input标签:

四、其他

  1. DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档"
    具体会影响:
    对标记、attributes 、properties的约束规则
    对浏览器的渲染模式产生影响,不同的渲染模式会影响到浏览器对于CSS 代码甚至 JavaScript 脚本的解析

  2. 设置浏览器渲染内核
    IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame,那么就用Chrome内核来渲染。

  3. HTML5的新标签(nav/footer等)IE中这些标签可能无法正常显示
    参考文章

  4. ie8不兼容SVG图形、Canvas,兼容方案:优雅降级。

  5. CSS3字体单位“rem”兼容方案:rem.js
    CSS3引入了新的字体大小单位rem,与em的“相对于其父元素来设置字体大小”的功能不同,rem是相对于根元素的字体大小比率单位,成了目前主流的单位之一。IE9+开始支持,IE8就只能通过引入js库来支持了。
    使用方法:在页面中引用rem.js文件。需要引用在页脚,也就是末尾,在所有css文件引用和DOM元素之后。
    参考文章

  6. 使用jQuery2.0以下的版本推荐使用1.8.3

  7. js书写时注意分号的书写,chrome,firefox等高级浏览器会自动识别分号,ie在低版本情况下只会报错,如果没注意1,使用了jQuery2.x以上的版本,jQuery内部也会报分号而引起的错误

  8. ie注释

<!--[if IE 8]>
<script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"></script>
<![endif]-->

。。。后续持续更新

猜你喜欢

转载自blog.csdn.net/qq_29510269/article/details/88830431