'HTMLSanitizerMixin.sanitize_css replacement.
HTMLSanitizerMixin.sanitize_css always whitelists background-*,
border-*, margin-*, and padding-*. We only whitelist what\'s in
the whitelist.'

def sanitize_css(self, style):

    style = re.compile('url\\s*\\(\\s*[^\\s)]+?\\s*\\)\\s*').sub('    ', style)
    if (not re.match('^([-:,;#%.\\sa-zA-Z0-9!]|\\w-\\w|\'[\\s\\w]+\'|"[\\s\\w]+"|\\([\\d,\\s]+\\))*$', style)):
        return ''
    if (not re.match('^\\s*([-\\w]+\\s*:[^:;]*(;\\s*|$))*$', style)):
        return ''
    clean = []
    for (prop, value) in re.findall('([-\\w]+)\\s*:\\s*([^:;]*)', style):
        if (not value):
            continue
        if (prop.lower() in self.allowed_css_properties):
            clean.append((((prop + ':    ') + value) + ';'))
        elif (prop.lower() in self.allowed_svg_properties):
            clean.append((((prop + ':    ') + value) + ';'))
    return '    '.join(clean)
