css – CSS related functions

This module contains functions related to the handling of CSS.

ll.xist.css.replaceurls(stylesheet, replacer)[source]

Replace all URLs appearing in the CSSStyleSheet stylesheet. For each URL the function replacer will be called and the URL will be replaced with the result.

ll.xist.css.geturls(stylesheet)[source]

Return a list of all URLs appearing in the CSSStyleSheet stylesheet.

ll.xist.css.iterrules(node, base=None, media=None, title=None)[source]

Return an iterator for all CSS rules defined in the HTML tree node. This will parse the CSS defined in any html.style or html.link element (and recursively in those stylesheets imported via the @import rule). The rules will be returned as CSSStyleRule objects from the cssutils package (so this requires cssutils).

The base argument will be used as the base URL for parsing the stylesheet references in the tree (so None means the URLs will be used exactly as they appear in the tree). All URLs in the style properties will be resolved.

If media is given, only rules that apply to this media type will be produced.

title can be used to specify which stylesheet group should be used. If title is None only the persistent and preferred stylesheets will be used. If title is a string only the persistent stylesheets and alternate stylesheets with that style name will be used.

For a description of “persistent”, “preferred” and “alternate” stylesheets see <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-styleSheet.html#sec_20.1.2.>

ll.xist.css.applystylesheets(node, base=None, media=None, title=None)[source]

applystylesheets() modifies the XIST tree node by removing all CSS (from html.link and html.style elements and their @imported stylesheets) and putting the resulting style properties into the style attribute of every affected element instead.

For the meaning of base, media and title see iterrules().

class ll.xist.css.CSSWeightedSelector[source]

Bases: Selector

Base class for all CSS pseudo-class selectors.

class ll.xist.css.CSSHasAttributeSelector[source]

Bases: CSSWeightedSelector

A CSSHasAttributeSelector selector selects all element nodes that have an attribute with the specified XML name.

class ll.xist.css.CSSAttributeListSelector[source]

Bases: CSSWeightedSelector

A CSSAttributeListSelector selector selects all element nodes where an attribute with the specified XML name has the specified word among the white space-separated list of words in the attribute value.

class ll.xist.css.CSSAttributeLangSelector[source]

Bases: CSSWeightedSelector

A CSSAttributeLangSelector selector selects all element nodes where an attribute with the specified XML name either is exactly the specified value or starts with the specified value followed by "-".

class ll.xist.css.CSSFirstChildSelector[source]

Bases: CSSWeightedSelector

A CSSFirstChildSelector selector selects all element nodes that are the first child of its parent.

class ll.xist.css.CSSLastChildSelector[source]

Bases: CSSWeightedSelector

A CSSLastChildSelector selector selects all element nodes that are the last child of its parent.

class ll.xist.css.CSSFirstOfTypeSelector[source]

Bases: CSSWeightedSelector

A CSSLastChildSelector selector selects all element nodes that are the first of its type among their siblings.

class ll.xist.css.CSSLastOfTypeSelector[source]

Bases: CSSWeightedSelector

A CSSLastChildSelector selector selects all element nodes that are the last of its type among their siblings.

class ll.xist.css.CSSOnlyChildSelector[source]

Bases: CSSWeightedSelector

A CSSOnlyChildSelector selector selects all element nodes that are the only element among its siblings.

class ll.xist.css.CSSOnlyOfTypeSelector[source]

Bases: CSSWeightedSelector

A CSSOnlyOfTypeSelector selector selects all element nodes that are the only element of its type among its siblings.

class ll.xist.css.CSSEmptySelector[source]

Bases: CSSWeightedSelector

A CSSEmptySelector selector selects all element nodes that are empty (i.e. they contain no elements or non-whitespace text).

class ll.xist.css.CSSRootSelector[source]

Bases: CSSWeightedSelector

A CSSRootSelector selector selects the root element.

class ll.xist.css.CSSLinkSelector[source]

Bases: CSSWeightedSelector

A CSSLinkSelector selector selects all HTML links.

class ll.xist.css.CSSDisabledSelector[source]

Bases: CSSWeightedSelector

A CSSDisabledSelector selector selects all HTML elements where the attribute disabled is set.

Note that that is not 100% what the pseudo class :disabled means, but since we have no live DOM this is the best we can do.

class ll.xist.css.CSSFunctionSelector[source]

Bases: CSSWeightedSelector

Base class of all CSS selectors that require an argument.

class ll.xist.css.CSSNthChildSelector[source]

Bases: CSSFunctionSelector

A CSSNthChildSelector selector selects all element nodes that are the n-th element among their siblings.

class ll.xist.css.CSSNthLastChildSelector[source]

Bases: CSSFunctionSelector

A CSSNthLastChildSelector selector selects all element nodes that are the n-th last element among their siblings.

class ll.xist.css.CSSNthOfTypeSelector[source]

Bases: CSSFunctionSelector

A CSSNthOfTypeSelector selector selects all element nodes that are the n-th of its type among their siblings.

class ll.xist.css.CSSNthLastOfTypeSelector[source]

Bases: CSSFunctionSelector

A CSSNthOfTypeSelector selector selects all element nodes that are the n-th last of its type among their siblings.

class ll.xist.css.CSSAdjacentSiblingCombinator[source]

Bases: BinaryCombinator

A CSSAdjacentSiblingCombinator works similar to an AdjacentSiblingCombinator except that only preceding elements are considered.

class ll.xist.css.CSSGeneralSiblingCombinator[source]

Bases: BinaryCombinator

A CSSGeneralSiblingCombinator works similar to an xfind.GeneralSiblingCombinator except that only preceding elements are considered.

ll.xist.css.selector(selectors, prefixes=None)[source]

Create a xfind.Selector object that matches all nodes that match the specified CSS selector expression. selectors can be a string or a cssutils.css.selector.Selector object. prefixes may be a mapping mapping namespace prefixes to namespace names.

ll.xist.css.parsestring(data, base=None, encoding=None)[source]

Parse the string data into a cssutils stylesheet. base is the base URL for the parsing process, encoding can be used to force the parser to use the specified encoding.

ll.xist.css.parsestream(stream, base=None, encoding=None)[source]

Parse a cssutils stylesheet from the stream stream. base is the base URL for the parsing process, encoding can be used to force the parser to use the specified encoding.

ll.xist.css.parsefile(filename, base=None, encoding=None)[source]

Parse a cssutils stylesheet from the file named filename. base is the base URL for the parsing process (defaulting to the filename itself), encoding can be used to force the parser to use the specified encoding.

ll.xist.css.parseurl(name, base=None, encoding=None, *args, **kwargs)[source]

Parse a cssutils stylesheet from the URL name. base is the base URL for the parsing process (defaulting to the final URL of the response, i.e. including redirects), encoding can be used to force the parser to use the specified encoding. arg and kwargs are passed on to URL.openread(), so you can pass POST data and request headers.