网站的兼容性
适配方案
两种方案做适配不同屏幕:一种是淘宝的按照尺寸缩放,一种是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%);