diff --git a/packages/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js b/packages/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js index 93890947a38ed30b109caeba2376126d1f95bf23..7db1fa5f3701fe6eb792dda50c1b3c88cca6412b 100644 --- a/packages/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js +++ b/packages/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js @@ -221,29 +221,28 @@ function applyToTag (styleElement, obj) { } } -//fixed by xxxxxx -var UPX_RE = /([+-]?\d+(\.\d+)?)[r|u]px/g -var VAR_STATUS_BAR_HEIGHT = /var\(--status-bar-height\)/gi -var VAR_WINDOW_TOP = /var\(--window-top\)/gi -var VAR_WINDOW_BOTTOM = /var\(--window-bottom\)/gi - -var statusBarHeight = false -function processCss(css) { +//fixed by xxxxxx +var UPX_RE = /([+-]?\d+(\.\d+)?)[r|u]px/g +var VAR_STATUS_BAR_HEIGHT = /var\(--status-bar-height\)/gi +var VAR_WINDOW_TOP = /var\(--window-top\)/gi +var VAR_WINDOW_BOTTOM = /var\(--window-bottom\)/gi + +var statusBarHeight = false +function processCss(css) { if (!uni.canIUse('css.var')) { //不支持 css 变量 if (statusBarHeight === false) { statusBarHeight = plus.navigator.getStatusbarHeight() - } + } var offset = { statusBarHeight: statusBarHeight, top: window.__WINDOW_TOP || 0, bottom: window.__WINDOW_BOTTOM || 0 - } - css = css.replace(VAR_STATUS_BAR_HEIGHT, offset.statusBarHeight + 'px') - .replace(VAR_WINDOW_TOP, offset.top + 'px') - .replace(VAR_WINDOW_BOTTOM, offset.bottom + 'px') - } - return css - .replace(UPX_RE, function(a, b) { - return uni.upx2px(b) + 'px' - }) + } + css = css.replace(VAR_STATUS_BAR_HEIGHT, offset.statusBarHeight + 'px') + .replace(VAR_WINDOW_TOP, offset.top + 'px') + .replace(VAR_WINDOW_BOTTOM, offset.bottom + 'px') + } + return css.replace(/\{.+?\}/gs, css => css.replace(UPX_RE, function (a, b) { + return uni.upx2px(b) + 'px' + })) } diff --git a/packages/vue-cli-plugin-uni/packages/h5-vue-style-loader/lib/addStylesClient.js b/packages/vue-cli-plugin-uni/packages/h5-vue-style-loader/lib/addStylesClient.js index c0bdff387c5b20456fe02b354a2c4be58b37dc76..94f20dce4f91a7c2325323b7a052bfcb74d36068 100644 --- a/packages/vue-cli-plugin-uni/packages/h5-vue-style-loader/lib/addStylesClient.js +++ b/packages/vue-cli-plugin-uni/packages/h5-vue-style-loader/lib/addStylesClient.js @@ -250,9 +250,9 @@ function processCss(css) { .replace(BODY_SCOPED_RE, page) .replace(BODY_RE, '') .replace(PAGE_SCOPED_RE, 'body.' + page + ' uni-page-body') - .replace(UPX_RE, function(a, b) { + .replace(/\{.+?\}/gs, css => css.replace(UPX_RE, function (a, b) { return uni.upx2px(b) + 'px' - }) + })) } function getPage() {