ie11和edge浏览器下REM的bug

来源:互联网 发布:怎么在淘宝上捡漏 编辑:程序博客网 时间:2024/06/06 02:42

最近在做项目的时候,为了进行响应式的操作,采用了现在出现的一个新的单位——REM,在主流的浏览器都是没什么问题的。但是在ie出现了灵异的bug。

bug表述:加载页面的时候,页面的所有元素没有按照对应获取的js来计算出来的rem值来进行显示。但是在鼠标悬浮在对应的元素时会自己动按照对应的计算值来显示,从而就会出现闪烁的bug。

由于上述代码还带有 resize 函数,假如 body 元素没有添加 font-size:100% 时。当窗口发生变化时总记录上一次的的 font-size 大小。当调试时,就变得正常了。同样需要清除缓存,退出浏览器才能继续查看 bug。

添加 body 样式后正常,估计是在 IE11 下获取不了动态修改过的 html 的内联样式,body 一直默认浏览器 font-size:14px。所以字体变得很小。将 body{font-size:100%} 继承父元素大小,就可以了。

body {  font-size:100%}

但是按照rem的表述rem不是根据html font-size计算吗?为什么还要设置body呢?这问题有待解决。

说明:字体大小单位rem创建了一个追大小,该字体大小是相当于在HTML或body元素中的已经声明的基本字体大小而言的,如果未声明基本字体大小,则是相对于内建字体大小的。

另外:在谷歌火狐内核的浏览器下,页面被渲染之前根元素文字的默认大小被定义了2次。第一次是css定义。第二次是js计算。最后使用的字体大小是后者。但貌似在ie浏览器中,ie认的是前者。这可能与ie浏览器和其他浏览器的读取顺序有关。

欢迎大家相互学习交流

说明:转载请联系作者并获得作者授权,同时注明转载的地址和作者

阅读全文
1 0