diff --git a/src/core/platform/web/config.js b/src/core/platform/web/config.js index cf49db71c7..030c03897d 100644 --- a/src/core/platform/web/config.js +++ b/src/core/platform/web/config.js @@ -14,9 +14,13 @@ BI.prepares.push(function () { return _isSupportFlex; }; BI.Plugin.configWidget("bi.horizontal", function (ob) { + var isIE = BI.isIE(), supportFlex = isSupportFlex(), isLessIE8 = isIE && BI.getIEVersion() < 8; + if (isLessIE8) { + return ob; + } // 在横向自适应场景下我们需要使用table的自适应撑出滚动条的特性(flex处理不了这种情况) // 主要出现在center_adapt或者horizontal_adapt的场景,或者主动设置horizontalAlign的场景 - // if (ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch) { + if (ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch) { // 虽然有两个元素以上的时候,有场景是控制一个显示一个隐藏的效果,还无法通过flex来实现 // var justOneItem = (ob.items && ob.items.length <= 1); // // 在这种情况下,也可以通过flex支持该布局 @@ -38,9 +42,9 @@ BI.prepares.push(function () { // ? BI.HorizontalAlign.Left : ob.horizontalAlign // }); // } - // return BI.extend({}, ob, {type: "bi.table_adapt"}); - // } - if (isSupportFlex()) { + return BI.extend({}, ob, {type: "bi.table_adapt"}); + } + if (supportFlex) { // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 // if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) { return BI.extend({}, ob, {type: "bi.flex_horizontal"}); @@ -52,42 +56,41 @@ BI.prepares.push(function () { // type: "bi.inline" // }); // } - return BI.extend({}, ob, {type: "bi.inline"}); // 否则采用table,不过horizontalAlign的right就不支持了。 - // return BI.extend({}, ob, {type: "bi.table_adapt"}); + return BI.extend({}, ob, {type: "bi.table_adapt"}); + }); + BI.Plugin.configWidget("bi.center_adapt", function (ob) { + var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); + var isAdapt = !ob.horizontalAlign || ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch; + if (!isAdapt || justOneItem) { + if (supportFlex) { + // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 + // if (!isIE || (ob.scrollable !== true && ob.scrollx !== true && ob.scrolly !== true)) { + return BI.extend({}, ob, {type: "bi.flex_center_adapt"}); + // } + } + if (!BI.isIE() || BI.getIEVersion() >= 8) { + return BI.extend({}, ob, {type: "bi.inline_center_adapt"}); + } + } + return ob; + }); + BI.Plugin.configWidget("bi.vertical_adapt", function (ob) { + var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); + var isAdapt = ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch; + if (!isAdapt || justOneItem) { + if (supportFlex) { + // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 + // if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) { + return BI.extend({}, ob, {type: "bi.flex_vertical_adapt"}); + // } + } + if (!BI.isIE() || BI.getIEVersion() > 8) { + return BI.extend({}, ob, {type: "bi.inline_vertical_adapt"}); + } + } + return ob; }); - // BI.Plugin.configWidget("bi.center_adapt", function (ob) { - // var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); - // var isAdapt = !ob.horizontalAlign || ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch; - // if (!isAdapt || justOneItem) { - // if (supportFlex) { - // // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 - // // if (!isIE || (ob.scrollable !== true && ob.scrollx !== true && ob.scrolly !== true)) { - // return BI.extend({}, ob, {type: "bi.flex_center_adapt"}); - // // } - // } - // if (!BI.isIE() || BI.getIEVersion() >= 8) { - // return BI.extend({}, ob, {type: "bi.inline_center_adapt"}); - // } - // } - // return ob; - // }); - // BI.Plugin.configWidget("bi.vertical_adapt", function (ob) { - // var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); - // var isAdapt = ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch; - // if (!isAdapt || justOneItem) { - // if (supportFlex) { - // // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 - // // if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) { - // return BI.extend({}, ob, {type: "bi.flex_vertical_adapt"}); - // // } - // } - // if (!BI.isIE() || BI.getIEVersion() > 8) { - // return BI.extend({}, ob, {type: "bi.inline_vertical_adapt"}); - // } - // } - // return ob; - // }); BI.Plugin.configWidget("bi.horizontal_adapt", function (ob) { var justOneItem = (ob.items && ob.items.length <= 1); if (!ob.verticalAlign || ob.verticalAlign === BI.VerticalAlign.TOP) {