serializing CSS — cssutils 0.9.8 documentation

### Navigation

- index
- modules |
- next |
- previous |
- cssutils 0.9.8 documentation »

# serializing CSS

To serialize any stylesheet use:

    print sheet.cssText

Also most other objects have a similar property which contains the text content of each object. Some use a slightly different name (e.g. `selectorText`) but all use the global serializer:

    >>> sheet = cssutils.parseString('a, b { color: green }')
    >>> print sheet.cssRules[0].cssText
    a, b {
        color: green
        }
    >>> print sheet.cssRules[0].selectorText
    a, b
    >>> print sheet.cssRules[0].selectorList[1].selectorText
    b

## `Preferences`

Quite a few preferences of the cssutils serializer may be tweaked.

To set a preference use:

    cssutils.ser.prefs.PREFNAME = NEWVALUE

Preferences are always used globally, so for all stylesheets until preferences are set again.

class `cssutils.serialize.` `Preferences`(**initials)

  Control output of CSSSerializer.

  defaultAtKeyword = True
    Should the literal @keyword from src CSS be used or the default form, e.g. if `True`: `@import` else: `@i\mport`
  defaultPropertyName = True

    Should the normalized propertyname be used or the one given in the src file, e.g. if `True`: `color` else: `c\olor`

    Only used if `keepAllProperties==False`.

  defaultPropertyPriority = True
    Should the normalized or literal priority be used, e.g. `!important` or `!Im\portant`
  importHrefFormat = None
    Uses hreftype if `None` or format `"URI"` if `'string'` or format `url(URI)` if `'uri'`
  indent = 4 * ‘ ‘
    Indentation of e.g Properties inside a CSSStyleDeclaration
  indentClosingBrace = True
    Defines if closing brace of block is indented to match indentation of the block (default) oder match indentation of selector.
  indentSpecificities = False (EXPERIMENTAL)
    Indent rules with subset of Selectors and higher Specitivity
  keepAllProperties = True
    If `True` all properties set in the original CSSStylesheet are kept meaning even properties set twice with the exact same same name are kept!
  keepComments = True
    If `False` removes all CSSComments
  keepEmptyRules = False
    defines if empty rules like e.g. `a {}` are kept in the resulting serialized sheet
  keepUnknownAtRules = True
    defines if unknown @rules like e.g. `@three-dee {}` are kept in the serialized sheet
  keepUsedNamespaceRulesOnly = False
    if True only namespace rules which are actually used are kept
  lineNumbers = False
    Only used if a complete CSSStyleSheet is serialized.
  lineSeparator = u’n’
    How to end a line. This may be set to e.g. u’’ for serializing of CSSStyleDeclarations usable in HTML style attribute.
  listItemSpacer = u’ ‘
    string which is used in `css.SelectorList`, `css.CSSValue` and `stylesheets.MediaList` after the comma
  normalizedVarNames = True
    defines if variable names should be serialized normalized (they are used as being normalized anyway)
  omitLastSemicolon = True
    If `True` omits ; after last property of CSSStyleDeclaration
  omitLeadingZero = False
    defines if values between -1 and 1 should omit the 0, like `.5px`
  paranthesisSpacer = u’ ‘
    string which is used before an opening paranthesis like in a `css.CSSMediaRule` or `css.CSSStyleRule`
  propertyNameSpacer = u’ ‘
    string which is used after a Property name colon
  resolveVariables = True
    if `True` all variable references are tried to resolved and all CSSVariablesRules are removed from the output. Any variable reference not resolvable is simply kept untouched.
  selectorCombinatorSpacer = u’ ‘
    string which is used before and after a Selector combinator like +, > or ~. CSSOM defines a single space for this which is also the default in cssutils.
  spacer = u’ ‘
    general spacer, used e.g. by CSSUnknownRule
  validOnly = False

    if True only valid (Properties) are output

    A Property is valid if it is a known Property with a valid value.

  `useDefaults`()

    Reset all preference options to their default value.

  `useMinified`()

    Set options resulting in a minified stylesheet.

    You may want to set preferences with this convenience method and set settings you want adjusted afterwards.

## `CSSSerializer`

There is a single global serializer used throughout the library. You may configure it by setting specific Preferences or completely replace it with your own.

A custom serializer must implement all methods the default one provides. Easiest would be to subclass `cssutils.serialize.CSSSerializer`.

To set a new serializer, use:

    cssutils.setSerializer(serializer)

You may also set `cssutils.ser` directly but the above method is the preferred one.

For most cases adjusting the `cssutils.ser.prefs` of the default serializer should be sufficient though.

class `cssutils.serialize.` `CSSSerializer`(prefs=None)

  Serialize a CSSStylesheet and its parts.

  To use your own serializing method the easiest is to subclass CSS Serializer and overwrite the methods you like to customize.

### Navigation

- index
- modules |
- next |
- previous |
- cssutils 0.9.8 documentation »