Universal selector: * Matches any element.
Type selectors: E Matches any E element (i.e., an element of type E).
Descendant selectors:E F Matches any F element that is a descendant of an E element.
Child selectors: E > F Matches any F element that is a child of an element E.
The :first-child pseudo-class: E:first-child Matches element E when E is the first child of its parent.
The link pseudo-classes: E:link E:visited Matches element E if E is the source anchor of a hyperlink of which the target is not yet visited (:link) or already visited (:visited).
The dynamic pseudo-classes: E:active E:hover E:focus Matches E during certain user actions.
The :lang() pseudo-class: E:lang(c) Matches element of type E if it is in (human) language c (the document language specifies how language is determined).
Adjacent selectors: E + F Matches any F element immediately preceded by a sibling element E.
Attribute selectors: E[foo] Matches any E element with the "foo" attribute set (whatever the value).
Attribute selectors: E[foo="warning"] Matches any E element whose "foo" attribute value is exactly equal to "warning".
Attribute selectors: E[foo~="warning"] Matches any E element whose "foo" attribute value is a list of space-separated values, one of which is exactly equal to "warning".
Attribute selectors: E[lang|="en"] Matches any E element whose "lang" attribute has a hyphen-separated list of values beginning (from the left) with "en".
Class selectors: DIV.warning Language specific. (In HTML, the same as DIV[class~="warning"].)
ID selectors: E#myid Matches any E element with ID equal to "myid".
[http://www.w3.org/TR/CSS2/selector.html]