flex布局的兼容方案,对flexibility的封装。
相对于直接接入flexibility
,这里做了动态按需加载以及多种接入方式的支持。
后续使用过程中如果有什么问题,方便统一升级或回滚处理。
.container {
// 在使用flex的选择器中增加这一声明就可以了
// flexibility会据此进行降级方案构建
-js-display: flex;
display: flex;
}
- 调用参数
let options = {
// 使用flex布局的元素,可以不传(以下为默认值)
elem: document.documentElement,
// flexibility.js地址,可以不传(以下为默认值)
src: '//j1.58cdn.com.cn/git/flex-polyfill/lib/flexibility.js'
};
- NPM包引用方式
// 安装
npm i -S flex-polyfill
// es6
import flexPolyfill from 'flex-polyfill';
// cmd
let flexPolyfill = require('flex-polyfill');
flexPolyfill(options);
- 全局引用方式
<script src="./dist/index.min.js"></script>
window.flexPolyfill(options);
- 加载器引用方式
// CMD
let flexPolyfill = require('./dist/index.min');
flexPolyfill(options);
// AMD
requirejs(['./dist/index.min'], function(flexPolyfill) {
flexPolyfill(options);
});
flex
仅支持flex-grow
align-items: stretch
的情况下,flex-direction
从row
切换到column
可能会失败
尽量避免使用复杂的特性组合,此方案不能完备地支持标准的全部内容,支持情况。