From fe86133704eb1d0ca41a8b62ea043473e7c0fb2b Mon Sep 17 00:00:00 2001 From: GoalSmashers Date: Mon, 28 Jan 2013 19:02:28 +0100 Subject: [PATCH] Fixes #49 - removing empty selectors from media query. --- lib/clean.js | 10 +++++++--- test/unit-test.js | 8 ++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/clean.js b/lib/clean.js index e0a3e1de..0efcb9ba 100644 --- a/lib/clean.js +++ b/lib/clean.js @@ -273,9 +273,13 @@ var CleanCSS = { } }); - // empty elements - if (options.removeEmpty) - replace(/[^\}]+?\{\}/g, ''); + if (options.removeEmpty) { + // empty elements + replace(/[^\{\}]+\{\}/g, ''); + + // empty @media declarations + replace(/@media [^\{]+\{\}/g, ''); + } // remove universal selector when not needed (*#id, *.class etc) replace(/\*([\.#:\[])/g, '$1'); diff --git a/test/unit-test.js b/test/unit-test.js index edd77d6d..ea890201 100644 --- a/test/unit-test.js +++ b/test/unit-test.js @@ -644,6 +644,14 @@ vows.describe('clean-units').addBatch({ 'just a semicolon': [ 'div { ; }', '' + ], + 'inside @media': [ + "@media screen { .test {} } .test1 { color: green; }", + ".test1{color:green}" + ], + 'inside not empty @media': [ + "@media screen { .test {} .some { display:none } }", + "@media screen{.some{display:none}}" ] }, { removeEmpty: true }), 'skip empty elements': cssContext({ -- 2.34.1