diff --git a/packages/vue-cli-plugin-uni/packages/postcss/index.js b/packages/vue-cli-plugin-uni/packages/postcss/index.js index a0da64cb66992a3f4c7d8cccc4d76a288ab2f0e1..5bbe58d5302a319248ce040e8b4c8e8b516e2349 100644 --- a/packages/vue-cli-plugin-uni/packages/postcss/index.js +++ b/packages/vue-cli-plugin-uni/packages/postcss/index.js @@ -170,8 +170,6 @@ if (process.env.UNI_USING_V3) { if (process.env.UNI_PLATFORM === 'h5') { // Transform CSS AST here - const bgDecls = [] - root.walkRules(rule => { let hasPage = false // Transform each rule here @@ -197,6 +195,7 @@ if (process.env.UNI_USING_V3) { ) }) } + const bgDecls = [] // handle upx unit rule.walkDecls(decl => { if (hasPage) { @@ -207,6 +206,15 @@ if (process.env.UNI_USING_V3) { // Transform each property declaration here decl.value = tranformValue(decl.value, opts) }) + + // handle body background rule + if (bgDecls.length) { + const bodyRule = postcss.rule({ + selector: 'body.?%PAGE?%' + }) + bgDecls.forEach(decl => bodyRule.append(decl)) + rule.after(bodyRule) + } }) root.walkAtRules(rule => { @@ -214,14 +222,6 @@ if (process.env.UNI_USING_V3) { rule.params = tranformValue(rule.params, opts) } }) - - if (bgDecls.length) { - const rule = postcss.rule({ - selector: 'body.?%PAGE?%' - }) - bgDecls.forEach(decl => rule.append(decl)) - root.append(rule) - } } else { root.walkRules(rule => { const selectors = transformSelector(rule.selectors.join(','), function (selectors) {