CSS Pseudo Classes
Last Updated Jul 21, 2015, 12:00:06 PM
CSS Pseudo Classes
A pseudo-class starts with a colon (:). No whitespace may appear between a type selector or universal selector and the colon, nor can whitespace appear after the colon.
SyntaxCSS1 Pseudo Classes
CSS1 introduced the :link
, :visited
, and :active
pseudo-classes, but only for the HTML a element. These pseudo-classes represented the state of links—unvisited, visited, or currently being selected—in a web page document
Try It Now
:visited
Try It Now
Try It Now
CSS2 Pseudo Classes
CSS2 expanded the range of pseudo-classes and ensured that they could be applied to any element. :link
and :visited
now apply to any element defined as a link in the document language. While they remain mutually exclusive, the :active
pseudo-class now joins :hover
and :focus
in the group of dynamic pseudo-classes.
:hover
Try It Now
:focus
Try It Now
A simple selector can contain more than one pseudo-class if the pseudo-classes aren’t mutually exclusive. For example, the selectors a:link:hover
and a:visited:hover
are valid, but a:link:visited
isn’t because :link
and :visited
are mutually exclusive. An element is either an unvisited link or a visited link.
CSS3 Pseudo Classes
CSS3 intrpduced many useful pseudo classes. The following table lists all the css3 pseudo classes with examples
Selector | Example | description | Try It |
---|---|---|---|
element | element | Targets a specific element. | Try It |
:active | a:active | It selects all the active links on a webpage. | Try It |
:checked | input:checked | Selects every checked <input> element | Try It |
:disabled | input:disabled | It Selects every disabled <input> element | Try It |
:empty | p:empty | It selects every <p> element that has no children (including text nodes) | Try It |
:enabled | input:enabled | It selects every enabled <input> element | Try It |
:first-child | p:first-child | It selects every <p> element that is the first child of its parent | Try It |
:first-of-type | p:first-of-type | It selects every <p> element that is the first <p> element of its parent | Try It |
:link | a:link | It Selects all unvisited links | Try It |
:not(selector) | :not(p) | It selects every element that is not a <p> element | Try It |
:nth-child(n) | p:nth-child(2) | It selects every <p> element that is the second child of its parent | Try It |
:nth-last-child(n) | p:nth-last-child(2) | It selects every <p> element that is the second child of its parent, counting from the last child | Try It |
:nth-of-type(n) | p:nth-of-type(2) | It Selects every <p> element that is the second element of its parent |
Try It |
:only-of-type | p:only-of-type | It selects every <p> element that is the only element of its parent |
Try It |
:required | input:required | It selects input elements with the "required" attribute specified | Try It |
Browser compatibility
Feature | |||||||
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Sources and Credits
The source of the content has been referred and updated with Mozilla Foundation and W3C Organization
Last Updated Jul 21, 2015, 12:00:06 PM