网站的兼容性

Posted on Apr 3, 2019

适配方案

两种方案做适配不同屏幕:一种是淘宝的按照尺寸缩放,一种是bootstrap的响应式布局。

bootstrap有一个react-bootstrap的项目,如果需要支持ie9,需要引入bootstrap3的css。因为4不支持ie9,有些特性使用不了。

回流与重绘 (Reflow & Repaint)

ie(9-11)中使用absolute和fixed,滚动式抖动。在整个文档中间某些位置设置了absolute和fixed,会导致页面抖动,查看性能记录,会有大量时间在【画图】,将absolute和fixed的元素移动到文档的尾部,也就是他们的后面没有其他元素,就能解决抖动的问题。

利用 ReactDOM.createPortal将absolute\fixed的元素放置到整个文档最后

利用modernizr检测浏览器不支持的功能\样式。

IE9的某些样式与标准写法不同

文字两段对齐:

text-align: justify;
text-justify: distribute; //IE9
-ms-text-align-last: justify;
text-align-last: justify;

文字竖排:

writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;//IE9

居中写法(top/left有bug):

position: absolute;
bottom: 50%;
right: 50%;
transform: translate(50%, 50%);