Below are the CSS selectors supported by Prince. For their precise definition please refer to the CSS specification - Prince largely implements Selectors Level 4.
selector |
Can refer to a simple selector , compound selector ,
complex selector , or selector list . |
selector list |
A comma-separate list of selectors. |
compound selector |
A chain of simple selectors that are not separated by a combinator. |
simple selector |
Either a type selector, universal selector, attribute selector, class selector,
ID selector, or pseudo-class. |
relative selector |
A shorthand for selectors that represent elements relative to a :scope
element. |
combinator |
Punctuation that represents a particular kind of relationship between compound
selectors on either side. |
An+B |
This micro-syntax to indicate indexes in a list of sibling elements represents
an integer step (A) and offset (B) , i.e. it indicates the
An+B th elements in a list. It also takes the keywords odd
and even . |
expanded element name |
The tuple of local element name and namespace name. |
Selector List |
E, F, G |
A comma-separated list of selectors represents all the elements selected by
each selector of the list. |
The Matches-Any Pseudo-class |
:is( <forgiving-selector-list> ) |
The matches-any pseudo-class represents any element that is represented by the list of compound selectors it takes as argument. |
The Negation (Matches-None) Pseudo-class |
:not( <complex-real-selector-list> ) |
The negation pseudo-class represents an element that is not represented by the list of compound selectors it takes as argument. |
The Specificity-adjustment Pseudo-class |
:where( <forgiving-selector-list> ) |
The specificity-adjustment pseudo-class has the same syntax as the matches-any pseudo-class selector :is() , but neither the selector itself, nor any of its arguments contribute to the specificity of the selector, the specificity always being zero. |
The Relational Pseudo-class |
:has( <relative-selector-list> ) |
The relational pseudo-class represents an element, if either of the relative selectors in the list, when evaluated with the element as the :scope element, match an element. |
The Contains Pseudo-class |
:contains(foo) |
The contains pseudo-class represents an element containing the text foo . |
Type (tag name) selectors |
E |
A type selector representing an element E in the default namespace. |
|E |
A type selector representing an element E in no namespace. |
ns|E |
A type selector representing an element E in the namespace ns . |
*|E |
A type selector representing an element E in any or no namespace. |
Universal selectors |
* |
A universal selector representing all elements in the default namespace. |
|* |
A universal selector representing all elements in no namespace. |
ns|* |
A type selector representing all elements in the namespace ns . |
*|* |
A type selector representing all elements. |
Case-sensitivity of the attributes and values depends on the document language. To match values case-insensitively, the attribute selector may contain the identifier i
before the closing bracket. (Example: [att=val i]
)
Default namespaces do not apply to attributes. Therefore a namespace ns
that has been previously declared should be added before the namespace separator |
preceding the attribute name.
Attribute presence and value selectors |
[att] |
An attribute selector representing an element with the att attribute. |
[att=val] |
An attribute selector representing an element with the att attribute
with the value val . |
[att~=val] |
An attribute selector representing an element with the att attribute
containing the value val . |
[att|=val] |
An attribute selector representing an element with the att attribute
equal to or beginning with the value val . |
Substring matching attribute selectors |
[att^=val] |
An attribute selector representing an element with the att attribute
whose value begins with the prefix val . |
[att$=val] |
An attribute selector representing an element with the att attribute
whose value ends with the suffix val . |
[att*=val] |
An attribute selector representing an element with the att attribute
whose value contains val . |
Class selectors |
.val |
A class selector representing a class identifier
val . |
ID selectors |
#val |
An ID selector representing an ID identifier
val . |
The :root pseudo-class |
:root |
The :root pseudo-class represents an element that is the root of
the document. In HTML 4 this is always the HTML element. |
The :empty pseudo-class |
:empty |
The :empty pseudo-class represents an element that has no children
at all. |
The child-indexed pseudo-classes |
:nth-child(An+B of S) |
The :nth-child(An+B) pseudo-class represents the An+B th
element that matches the selector list S among its inclusive siblings. |
:nth-last-child(An+B of S) |
The :nth-last-child(An+B) pseudo-class represents the An+B th
element that matches the selector list S among its inclusive siblings,
counting backwards from the end. |
:first-child |
The :first-child pseudo-class represents an element that is first
among its inclusive siblings. |
:last-child |
The :last-child pseudo-class represents an element that is last
among its inclusive siblings. |
:only-child |
The :only-child pseudo-class represents an element that has no siblings. |
The typed child-indexed pseudo-classes |
:nth-of-type(An+B) |
The :nth-of-type(An+B) pseudo-class represents the An+B th
element with the same namespace and type among its inclusive siblings. |
:nth-last-of-type(An+B) |
The :nth-last-of-type(An+B) pseudo-class represents the An+B th
element with the same namespace and type among its inclusive siblings, counting backwards
from the end. |
:first-of-type |
The :first-of-type pseudo-class represents an element that is the
first with a particular namespace and type among its inclusive siblings. |
:last-of-type |
The :last-of-type pseudo-class represents an element that is the
first with a particular namespace and type among its inclusive siblings, counting
backwards from the end. |
:only-of-type |
The :only-of-type pseudo-class represents an element that has no
siblings with the same namespace and type. |
The :first and :nth page selectors |
:first |
Represents first page of the document. |
:nth(N) |
Represents the Nth page of the document: @page:nth(42) {...} |
:first-of-group |
Represents the first page of a page group. |
:nth-of-group(N) |
Represents the Nth page of a page group. |
Page spread selectors |
:left |
Represents a left page in a page spread. |
:right |
Represents a right page in a page spread. |
:recto |
Represents a page in a page spread - in a left-to-right script it selects the right-hand side of a spread, while in a right-to-left script it selects the left-hand side of a spread. |
:verso |
Represents a page in a page spread - in a left-to-right script it selects the left-hand side of a spread, while in a right-to-left script it selects the right-hand side of a spread. |
The blank page selector |
:blank |
Represents blank pages in the document. |