From 100f6fec2f6171dca72f8bcad8e6daa0192e8bce Mon Sep 17 00:00:00 2001 From: Alquen Antonio Sarmiento Date: Mon, 24 Jun 2024 15:52:43 +0800 Subject: [PATCH] fix (custom css): support nested css (#3199) * fix: Ignore invalid CSS that affects the CSS of subsequent blocks * fix: revert change * fix: close any open curly braces --- src/css-optimize.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/css-optimize.php b/src/css-optimize.php index d6b1ec86f..e3f910890 100644 --- a/src/css-optimize.php +++ b/src/css-optimize.php @@ -462,7 +462,17 @@ public static function generate_css( $styles ) { // Optimize selectors by combining similar ones. $selector_arr = self::combine_selectors( $selector_arr ); - $css .= implode( ',', $selector_arr ) . $style_rules; + $combined_css = implode( ',', $selector_arr ) . $style_rules; + + // Prevent invalid CSS in affecting the rest of the CSS + // by closing any open curly braces. + $open_curly_brace = substr_count( $combined_css , '{' ); + $close_curly_brace = substr_count( $combined_css , '}' ); + if ( $open_curly_brace > $close_curly_brace ) { + $combined_css .= str_repeat( '}', $open_curly_brace - $close_curly_brace ); + } + + $css .= $combined_css; } if ( ! empty( $media_query ) ) {