Package cssutils.css

Classes implementing DOM Level 2 CSS and CSS Module: Namespaces (W3C Working Draft 28 August 2006)

CSSStyleSheet

A CSSStyleSheet contains all rules. It consists of the different CSS rules like CSSImportRule, CSSStyleRule etc. It also defines the encoding of the style sheet used for serialization. The encoding might by set with an CSSCharsetRule rule or simpler with the encoding attribute. The serialized sheet may be obtained from cssText. All rules are present in cssRules, a stylesheet iterates on its rules so this might be easier. Namespaces are available via namespaces (do not rely on prefixes, see http://www.w3.org/TR/REC-xml-names/ how these work). Variables are available via variables which is a CSSVariablesDeclaration and contains all available variables including the ones defined in imported style sheets. Changes to this object do NOT change the parent sheet!

class cssutils.css.CSSStyleSheet(href=None, media=None, title='', disabled=None, ownerNode=None, parentStyleSheet=None, readonly=False, ownerRule=None, validating=True)

CSSStyleSheet represents a CSS style sheet.

Format:

stylesheet
  : [ CHARSET_SYM S* STRING S* ';' ]?
    [S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
    [ namespace [S|CDO|CDC]* ]* # according to @namespace WD
    [ [ ruleset | media | page ] [S|CDO|CDC]* ]*
cssRules

All Rules in this style sheet, a CSSRuleList.

add(rule)

Add rule to style sheet at appropriate position. Same as insertRule(rule, inOrder=True).

property alternate

Not used in cssutils yet.

property cssRules

All Rules in this style sheet, a CSSRuleList.

property cssText

Textual representation of the stylesheet (a byte string).

deleteRule(index)

Delete rule at index from the style sheet.

Parameters:

index

The index of the rule to be removed from the StyleSheet’s rule list. For an index < 0 no IndexSizeErr is raised but rules for normal Python lists are used. E.g. deleteRule(-1) removes the last rule in cssRules.

index may also be a CSSRule object which will then be removed from the StyleSheet.

Exceptions:
  • IndexSizeErr: Raised if the specified index does not correspond to a rule in the style sheet’s rule list.

  • NamespaceErr: Raised if removing this rule would result in an invalid StyleSheet

  • NoModificationAllowedErr: Raised if this style sheet is readonly.

property encoding

Encoding set in CSSCharsetRule or if None resulting in default utf-8 encoding being used.

property href

If the style sheet is a linked style sheet, the value of this attribute is its location. For inline style sheets, the value of this attribute is None. See the href attribute definition for the LINK element in HTML 4.0, and the href pseudo-attribute for the XML style sheet processing instruction.

insertRule(rule, index=None, inOrder=False, _clean=True)

Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.

Parameters:
  • rule – a parsable DOMString, in cssutils also a CSSRule or CSSRuleList

  • index – of the rule before the new rule will be inserted. If the specified index is equal to the length of the StyleSheet’s rule collection, the rule will be added to the end of the style sheet. If index is not given or None rule will be appended to rule list.

  • inOrder – if True the rule will be put to a proper location while ignoring index and without raising HierarchyRequestErr. The resulting index is returned nevertheless.

Returns:

The index within the style sheet’s rule collection

Exceptions:
  • HierarchyRequestErr: Raised if the rule cannot be inserted at the specified index e.g. if an @import rule is inserted after a standard rule set or other at-rule.

  • IndexSizeErr: Raised if the specified index is not a valid insertion point.

  • NoModificationAllowedErr: Raised if this style sheet is readonly.

  • SyntaxErr: Raised if the specified rule has a syntax error and is unparsable.

property namespaces

All Namespaces used in this CSSStyleSheet.

property ownerNode

Not used in cssutils yet.

property ownerRule

A ref to an @import rule if it is imported, else None.

property parentStyleSheet

For style sheet languages that support the concept of style sheet inclusion, this attribute represents the including style sheet, if one exists. If the style sheet is a top-level style sheet, or the style sheet language does not support inclusion, the value of this attribute is None.

property seq

Internal readonly attribute, DO NOT USE!

setSerializer(**kwargs)

Set the cssutils global Serializer used for all output.

setSerializerPref(**kwargs)

Set a Preference of CSSSerializer used for output. See cssutils.serialize.Preferences for possible preferences to be set.

property type

This specifies the style sheet language for this style sheet. The style sheet language is specified as a content type (e.g. text/css). The content type is often specified in the ownerNode. Also see the type attribute definition for the LINK element in HTML 4.0, and the type pseudo-attribute for the XML style sheet processing instruction. For CSS this is always text/css.

property valid

True if all contained rules are valid

property variables

A cssutils.css.CSSVariablesDeclaration containing all available variables in this CSSStyleSheet including the ones defined in imported sheets.

CSS rules

CSSRule

class cssutils.css.CSSRule(parentRule=None, parentStyleSheet=None, readonly=False)

Abstract base interface for any type of CSS statement. This includes both rule sets and at-rules. An implementation is expected to preserve all rules specified in a CSS style sheet, even if the rule is not recognized by the parser. Unrecognized rules are represented using the CSSUnknownRule interface.

CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of the rule. This reflects the current state of the rule and not its initial value.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

CSSRuleList

class cssutils.css.CSSRuleList(*ignored)

The CSSRuleList object represents an (ordered) list of statements.

The items in the CSSRuleList are accessible via an integral index, starting from 0.

Subclasses a standard Python list so theoretically all standard list methods are available. Setting methods like __init__, append, extend or __setslice__ are added later on instances of this class if so desired. E.g. CSSStyleSheet adds append which is not available in a simple instance of this class!

append(*ignored)

Implemented in class using a CSSRuleList only.

clear()

Remove all items from list.

copy()

Return a shallow copy of the list.

count(value, /)

Return number of occurrences of value.

extend(*ignored)

Implemented in class using a CSSRuleList only.

index(value, start=0, stop=9223372036854775807, /)

Return first index of value.

Raises ValueError if the value is not present.

insert(index, object, /)

Insert object before index.

item(index)

(DOM) Retrieve a CSS rule by ordinal index. The order in this collection represents the order of the rules in the CSS style sheet. If index is greater than or equal to the number of rules in the list, this returns None.

Returns CSSRule, the style rule at the index position in the CSSRuleList, or None if that is not a valid index.

property length

(DOM) The number of CSSRules in the list.

pop(index=-1, /)

Remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range.

remove(value, /)

Remove first occurrence of value.

Raises ValueError if the value is not present.

reverse()

Reverse IN PLACE.

rulesOfType(type)

Yield the rules which have the given type only, one of the constants defined in cssutils.css.CSSRule.

sort(*, key=None, reverse=False)

Stable sort IN PLACE.

CSSCharsetRule

class cssutils.css.CSSCharsetRule(encoding=None, parentRule=None, parentStyleSheet=None, readonly=False)

The CSSCharsetRule interface represents an @charset rule in a CSS style sheet. The value of the encoding attribute does not affect the encoding of text data in the DOM objects; this encoding is always UTF-16 (also in Python?). After a stylesheet is loaded, the value of the encoding attribute is the value found in the @charset rule. If there was no @charset in the original document, then no CSSCharsetRule is created. The value of the encoding attribute may also be used as a hint for the encoding used on serialization of the style sheet.

The value of the @charset rule (and therefore of the CSSCharsetRule) may not correspond to the encoding the document actually came in; character encoding information e.g. in an HTTP header, has priority (see CSS document representation) but this is not reflected in the CSSCharsetRule.

This rule is not really needed anymore as setting CSSStyleSheet.encoding is much easier.

Format:

charsetrule:
    CHARSET_SYM S* STRING S* ';'

BUT: Only valid format is (single space, double quotes!):

@charset "ENCODING";
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation.

property encoding

(DOM)The encoding information used in this @charset rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

CSSFontFaceRule

class cssutils.css.CSSFontFaceRule(style=None, parentRule=None, parentStyleSheet=None, readonly=False)

The CSSFontFaceRule interface represents a @font-face rule in a CSS style sheet. The @font-face rule is used to hold a set of font descriptions.

Format:

font_face
  : FONT_FACE_SYM S*
    '{' S* declaration [ ';' S* declaration ]* '}' S*
  ;

cssutils uses a CSSStyleDeclaration to represent the font descriptions. For validation a specific profile is used though were some properties have other valid values than when used in e.g. a CSSStyleRule.

CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property style

(DOM) The declaration-block of this rule set, a CSSStyleDeclaration.

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property valid

CSSFontFace is valid if properties font-family and src are set and all properties are valid.

property wellformed

If the rule is wellformed.

CSSImportRule

class cssutils.css.CSSImportRule(href=None, mediaText=None, name=None, parentRule=None, parentStyleSheet=None, readonly=False)

Represents an @import rule within a CSS style sheet. The @import rule is used to import style rules from other style sheets.

Format:

import
  : IMPORT_SYM S*
  [STRING|URI] S* [ medium [ COMMA S* medium]* ]? S* STRING? S* ';' S*
  ;
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

property href

Location of the style sheet to be imported.

property media

(DOM) A list of media types for this rule of type MediaList.

property name

An optional name for the imported sheet.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property styleSheet

(readonly) The style sheet referred to by this rule.

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

Depending on if media is used at all.

CSSMediaRule

class cssutils.css.CSSMediaRule(mediaText='all', name=None, parentRule=None, parentStyleSheet=None, readonly=False)

Objects implementing the CSSMediaRule interface can be identified by the MEDIA_RULE constant. On these objects the type attribute must return the value of that constant.

Format:

: MEDIA_SYM S* medium [ COMMA S* medium ]*

    STRING? # the name

LBRACE S* ruleset* '}' S*;
cssRules

All Rules in this media rule, a CSSRuleList.

CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

add(rule)

Add rule to page rule. Same as insertRule(rule).

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

deleteRule(index)

Delete the rule at index from rules cssRules.

Parameters:

index

The index of the rule to be removed from the rules cssRules list. For an index < 0 no IndexSizeErr is raised but rules for normal Python lists are used. E.g. deleteRule(-1) removes the last rule in cssRules.

index may also be a CSSRule object which will then be removed.

Exceptions:
insertRule(rule, index=None)

Implements base insertRule.

property media

(DOM) A list of media types for this rule of type MediaList.

property name

An optional name for this media rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

CSSNamespaceRule

class cssutils.css.CSSNamespaceRule(namespaceURI=None, prefix=None, cssText=None, parentRule=None, parentStyleSheet=None, readonly=False)

Represents an @namespace rule within a CSS style sheet.

The @namespace at-rule declares a namespace prefix and associates it with a given namespace (a string). This namespace prefix can then be used in namespace-qualified names such as those described in the Selectors Module [SELECT] or the Values and Units module [CSS3VAL].

Dealing with these rules directly is not needed anymore, easier is the use of cssutils.css.CSSStyleSheet.namespaces.

Format:

namespace
  : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*
  ;
namespace_prefix
  : IDENT
  ;
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

property namespaceURI

URI (handled as simple string) of the defined namespace.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property prefix

Prefix used for the defined namespace.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

CSSPageRule

class cssutils.css.CSSPageRule(selectorText=None, style=None, parentRule=None, parentStyleSheet=None, readonly=False)

The CSSPageRule interface represents a @page rule within a CSS style sheet. The @page rule is used to specify the dimensions, orientation, margins, etc. of a page box for paged media.

Format:

page :
       PAGE_SYM S* IDENT? pseudo_page? S*
       '{' S* [ declaration | margin ]?
       [ ';' S* [ declaration | margin ]? ]* '}' S*
       ;

pseudo_page :
       ':' [ "left" | "right" | "first" ]
       ;

margin :
       margin_sym S* '{' declaration [ ';' S* declaration? ]* '}' S*
       ;

margin_sym :
       TOPLEFTCORNER_SYM |
       TOPLEFT_SYM |
       TOPCENTER_SYM |
       TOPRIGHT_SYM |
       TOPRIGHTCORNER_SYM |
       BOTTOMLEFTCORNER_SYM |
       BOTTOMLEFT_SYM |
       BOTTOMCENTER_SYM |
       BOTTOMRIGHT_SYM |
       BOTTOMRIGHTCORNER_SYM |
       LEFTTOP_SYM |
       LEFTMIDDLE_SYM |
       LEFTBOTTOM_SYM |
       RIGHTTOP_SYM |
       RIGHTMIDDLE_SYM |
       RIGHTBOTTOM_SYM
       ;

cssRules contains a list of MarginRule objects.

CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

add(rule)

Add rule to page rule. Same as insertRule(rule).

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

deleteRule(index)

Delete the rule at index from rules cssRules.

Parameters:

index

The index of the rule to be removed from the rules cssRules list. For an index < 0 no IndexSizeErr is raised but rules for normal Python lists are used. E.g. deleteRule(-1) removes the last rule in cssRules.

index may also be a CSSRule object which will then be removed.

Exceptions:
insertRule(rule, index=None)

Implements base insertRule.

keys()

Return list of all set margins (MarginRule).

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property selectorText

(DOM) The parsable textual representation of the page selector for the rule.

property seq

Internal readonly attribute, DO NOT USE!

property specificity

Specificity of this page rule (READONLY). Tuple of (f, g, h) where:

  • if the page selector has a named page, f=1; else f=0

  • if the page selector has a ‘:first’ pseudo-class, g=1; else g=0

  • if the page selector has a ‘:left’ or ‘:right’ pseudo-class, h=1; else h=0

property style

(DOM) The declaration-block of this rule set, a CSSStyleDeclaration.

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

MarginRule

class cssutils.css.MarginRule(margin=None, style=None, parentRule=None, parentStyleSheet=None, readonly=False)

A margin at-rule consists of an ATKEYWORD that identifies the margin box (e.g. @top-left’) and a block of declarations (said to be in the margin context).

Format:

margin :
       margin_sym S* '{' declaration [ ';' S* declaration? ]* '}' S*
       ;

margin_sym :
       TOPLEFTCORNER_SYM |
       TOPLEFT_SYM |
       TOPCENTER_SYM |
       TOPRIGHT_SYM |
       TOPRIGHTCORNER_SYM |
       BOTTOMLEFTCORNER_SYM |
       BOTTOMLEFT_SYM |
       BOTTOMCENTER_SYM |
       BOTTOMRIGHT_SYM |
       BOTTOMRIGHTCORNER_SYM |
       LEFTTOP_SYM |
       LEFTMIDDLE_SYM |
       LEFTBOTTOM_SYM |
       RIGHTTOP_SYM |
       RIGHTMIDDLE_SYM |
       RIGHTBOTTOM_SYM
       ;

e.g.:

@top-left {
    content: "123";
    }
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Margin area of parent CSSPageRule. margin and atkeyword are both normalized @keyword of the @rule.

property cssText

(DOM) The parsable textual representation.

property margin

Margin area of parent CSSPageRule. margin and atkeyword are both normalized @keyword of the @rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property style

(DOM) The declaration-block of this rule set.

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

CSSStyleRule

class cssutils.css.CSSStyleRule(selectorText=None, style=None, parentRule=None, parentStyleSheet=None, readonly=False)

The CSSStyleRule object represents a ruleset specified (if any) in a CSS style sheet. It provides access to a declaration block as well as to the associated group of selectors.

Format:

: selector [ COMMA S* selector ]*
LBRACE S* declaration [ ';' S* declaration ]* '}' S*
;
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property selectorList

The SelectorList of this rule.

property selectorText

(DOM) The textual representation of the selector for the rule set.

property seq

Internal readonly attribute, DO NOT USE!

property style

(DOM) The declaration-block of this rule set.

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property valid

True when the style declaration is true.

property wellformed

If the rule is wellformed.

CSSVariablesRule

class cssutils.css.CSSVariablesRule(mediaText=None, variables=None, parentRule=None, parentStyleSheet=None, readonly=False)

The CSSVariablesRule interface represents a @variables rule within a CSS style sheet. The @variables rule is used to specify variables.

cssutils uses a CSSVariablesDeclaration to represent the variables.

Format:

variables
    VARIABLES_SYM S* medium [ COMMA S* medium ]* LBRACE S*
    variableset* '}' S*
    ;

for variableset see cssutils.css.CSSVariablesDeclaration

Media are not implemented. Reason is that cssutils is using CSS variables in a kind of preprocessing and therefor no media information is available at this stage. For now do not use media!

Example:

@variables {
  CorporateLogoBGColor: #fe8d12;
}

div.logoContainer {
  background-color: var(CorporateLogoBGColor);
}
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

(DOM) The parsable textual representation of this rule.

property media

NOT IMPLEMENTED! As cssutils resolves variables during serializing media information is lost.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property valid

NOT IMPLEMTED REALLY (TODO)

property variables

(DOM) The variables of this rule set, a cssutils.css.CSSVariablesDeclaration.

property wellformed

If the rule is wellformed.

CSSComment

class cssutils.css.CSSComment(cssText=None, parentRule=None, parentStyleSheet=None, readonly=False)

Represents a CSS comment (cssutils only).

Format:

/*...*/
CHARSET_RULE = 2

cssutils.css.CSSCharsetRule (not used in CSSOM anymore)

COMMENT = 1001

cssutils.css.CSSComment - not in the offical spec, Value has changed in 0.9.7a3

FONT_FACE_RULE = 5

cssutils.css.CSSFontFaceRule

IMPORT_RULE = 3

cssutils.css.CSSImportRule

MARGIN_RULE = 1006

cssutils.css.MarginRule - experimental rule not in the offical spec

MEDIA_RULE = 4

cssutils.css.CSSMediaRule

NAMESPACE_RULE = 10

cssutils.css.CSSNamespaceRule, Value has changed in 0.9.7a3 due to a change in the CSSOM spec.

PAGE_RULE = 6

cssutils.css.CSSPageRule

STYLE_RULE = 1

cssutils.css.CSSStyleRule

UNKNOWN_RULE = 0

cssutils.css.CSSUnknownRule (not used in CSSOM anymore)

VARIABLES_RULE = 1008

cssutils.css.CSSVariablesRule - experimental rule not in the offical spec

property atkeyword

Normalized keyword of an @rule (e.g. @import).

property cssText

The parsable textual representation of this rule.

property parent

The Parent Node of this CSSRule or None.

property parentRule

If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns None.

property parentStyleSheet

The style sheet that contains this rule.

property seq

Internal readonly attribute, DO NOT USE!

property type

The type of this rule, as defined by a CSSRule type constant.

property typeString

Descriptive name of this rule’s type.

property wellformed

If the rule is wellformed.

Additional Info

Some classes in this package support standard Python idioms like iteration on certain attributes:

>>> import cssutils
>>> sheet = cssutils.css.CSSStyleSheet()
>>> sheet.cssText = '@charset "ascii";a { color: green }'
>>> for rule in sheet:
...     print rule
...
<cssutils.css.CSSCharsetRule object encoding='ascii' at 0x2ce7
<cssutils.css.CSSStyleRule object selector=u'a' style=u'color:
s=<cssutils.util._Namespaces object at 0x02CE7B30> at 0x2ce7d3

for in is supported by CSSStyleSheet and CSSMediaRule (iterating over the contained CSSRule objects, CSSStyleDeclaration (over the names of the contained Property objects), ~cssutils.css.CSSValueList (over the ~cssutils.css.CSSValue objects in the list).