diff --git a/lib/css_parser/rule_set.rb b/lib/css_parser/rule_set.rb index 82cbc87..99ae5bb 100644 --- a/lib/css_parser/rule_set.rb +++ b/lib/css_parser/rule_set.rb @@ -359,9 +359,8 @@ def expand_dimensions_shorthand! # :nodoc: # # TODO: rgba, hsl, hsla value.gsub!(RE_COLOUR) { |c| c.gsub(/(\s*,\s*)/, ',') } - value.gsub!(RE_FUNCTIONS) { |c| c.gsub(/\s+/, WHITESPACE_REPLACEMENT) } - matches = value.strip.split(/\s+/) + matches = split_value_preserving_whitespace(value) case matches.length when 1 @@ -640,6 +639,21 @@ def parse_selectors!(selectors) # :nodoc: s end end + + def split_value_preserving_whitespace(value) + split_value = value.gsub(RE_FUNCTIONS) do |c| + c.gsub!(/\s+/, WHITESPACE_REPLACEMENT) + c + end + + matches = split_value.strip.split(/\s+/) + + matches.each do |c| + c.gsub!(WHITESPACE_REPLACEMENT, ' ') + end + + matches + end end class OffsetAwareRuleSet < RuleSet