CSS cheatsheetEdit
Type selectors
Style all p elements:
p { ... }
Class selectors
Style all elements of class foo:
.foo { ... }
Note that an element may contain multiple space-separated classes; for example, you could apply classes foo and bar to a p element with:
<p class="foo bar">baz</p>
Combined type/class selectors
Style all li elements of class foo:
li.foo { ... }
ID selectors
Style the element with ID foo (must be only one such element on the page):
#foo { ... }
Combined class/ID selectors
Style the div element with ID foo (must be only one such element on the page):
div#foo { ... }
Descendant selectors
Style all em elements that are descendants (direct or indirect) of a p element:
p em { ... }
Child selectors
Style all em elements that are immediate children of a p element:
p > em { ... }
Universal selectors
Style all elements on the page:
* { ... }
Adjacent sibling selectors
Style any h3 element that immediately follows an h2 element:
h2 + h3 { ... }
Attribute selectors
Style any img element that has an alt attribute:
img[alt] { ... }
Style any img element whose alt attribute has the exact value foo:
img[alt="foo"] { ... }
Style any img element whose alt attribute contains the space-delimited word foo:
img[alt~="foo"] { ... }
Style any img element whose alt attribute contains the hyphen-delimited word foo (in other words, the attribute must contain the substring, foo-):
img[alt|="foo"] { ... }
Other selectors:
a[href^="http:"]: attribute starts with "http:"a[href$=".png"]: attribute ends with ".png"a[href*="foo"]: attribute contains "foo"
Note that selectors can be combined; eg:
a[href^="http:"][href$=".png"]: attribute starts with "http:" and ends with ".png"
See also:
Pseudo-class selectors
a { ... }
a:link { ... }
a:visited { ... }
a:hover { ... }
a:active { ... }
a { ... }
a:link { ... }
a:visited { ... }
a:hover { ... }
a:active { ... }
The order is important, because if multiple possible matches are found the last-specified selector will be applied in the event of a conflict. So, for example, if combining the style declarations in pairs the ordering (link/visited followed by hover/active) should be maintained:
a:link, a:visited { ... }
a:hover, a:active { ... }
Other pseudo-class selectors:
:first-child:focus:lang(n)
Pseudo-element selectors
Style the first line of the p element:
p:first-line { ... }
Style the first letter of the p element:
p:first-letter
Other pseudo-element selectors:
:before:after