Delivering solid user friendly software solutions since the dawn of time.

Selectors Overview

Categories: CSS Javascript


* { any element }
#elementId * { all children of elementId } E { all tags E }
E F { all tags F descendants of E } E>F { all tags F direct children of E } // child combinator E+F { all tags F immediately preceded by sibling E } // adjacent selector E~F { all tags F preceded by any sibling E } // sibling combinator E.C { all tags E with class C }  // .C = *.C E#I { all tags E with id I } // #I = *#I E[A] { all tags E with attribute A } E[A=V] { all tags E with attribute A of value V } // eg. a[href="foo"] E[A^=V] { all E with attribute A value beginning with V } E[A$=V] { all E with attribute A value end with V } // eg. a[href$=".jpg"] E[A*=V] { all E with attribute A value contains with V }
E[A~=V] { all E with value in space separated list A }
a:link { anchors tags that not been clicked on }
a:visited { anchors tags that have been clicked }
X:checked { all checked radio and checkboxes }
X:disabled, X:enabled
X:after, X:before { generate content around an element } // eg. .crumb:after { content : ">" }
X:hover { styling element on hover over } // user action pseudo class
X:not(selector) // eg. div:not(#container)
X:only-child { target elements wich are only child of parent }
X:only-of-type { elements that have no siblings within parent container }
X:first-of-type { first sibling of its type }
X:nth-child(n) {
nth-child is 1-based all the other selectors are 0-based }
X:nth-child(Xn+Y) { every x element }
X:nth-of-type(n) { select according to type of element }
X::first-letter { first letter of block elements }
X::first-line { first line of block elements }


:contains(foo) :file :header //h1 -> h6 :hidden :image //input[type=image] :input //input, select, textarea, button :not(filter) :parent //all elements that have children including text but not empty ones :password :radio
:radio:checked :reset :selected :submit :text :visible
:eq(n) returns nth matching element
:gt(n) elements after nth matching
:lt(n) elements before nth matching
E:has(F) all tags E with at least one F contained //only one nested level eg. foo:not(bar:has(baz))


/html//form/fieldset all <fieldset> elements direct under <form>
/html//form/*/input all <input> elements directly under exactly on element under <form>
//div/.. matches all elements that are direct parent to a <div>
//div[@p] all div elements with at least one <p>
position() equals :first
position()>n equals :gt(n)