Pseudo classes are used to apply styles to an element in a certain state.
| Pseudo classes | Explanation |
|---|---|
| link | applies style to an unvisited link (links only) |
| visited | applies style to an visited link (links only) |
| hover | applies style to an element when the mouse is placed over it |
| active | applies style to an activated element |
| focus | applies style to an element while it has the focus |
| lang | applies style to an element that include the specified language |
The focus and lang pseudo classes are not supported in MSIE.
There is a colon between the selector and the pseudo class.
Selector:Pseudo-class { Property: Value }
For example :
a:link { color: red }
Pseudo classes can also be used with normal classes.
Selector.Normal-class:Pseudo-class { Property: Value }
For example :
a.example:link { color: red }
When you use the following pseudo classes for the A element, the style can be applied according to the state of the link.
a:link { color: #0000ff; } /* Non-visited link color (The first sets) */
a:visited { color: #0000a0; } /* Visited link color (The second sets) */
a:hover { color: #ff0000; } /* Hover link color (The third sets) */
a:active { color: #ffff00; } /* Active link color (The fourth sets) */
These styles are applied to all links in the document.
<html> <head> <title>TAG index</title> <style type="text/css"> a:link { color: #0000ff; } a:visited { color: #0000a0; } a:hover { color: #ff0000; } a:active { color: #ffff00; } </style> </head> <body> <ul> <li><a href="../../index.html">Home</a></li> <li><a href="../index.html">CSS Properties</a></li> <li><a href="index.html">Relation Document</a></li> </ul> </body> </html>
Pseudo classes and Normal classes
The style can be applied only to the links with the specified class by using the normal class.
a.example:link { color: #0000ff; }
a.example:visited { color: #0000a0; }
a.example:hover { color: #ff0000; }
a.example:active { color: #ffff00; }
In the above example, the styles are applied only to the links that have the class "example".
<html> <head> <title>TAG index</title> <style type="text/css"> a.example:link { color: #0000ff; } a.example:visited { color: #0000a0; } a.example:hover { color: #ff0000; } a.example:active { color: #ffff00; } </style> </head> <body> <ul> <li><a href="../../index.html" class="example">The styles are applied to this link.</a></li> <li><a href="../index.html" class="example">The styles are applied to this link.</a></li> <li><a href="index.html">The styles are not applied to this link.</a></li> </ul> </body> </html>
Nesting
The style can be applied only to the links within a certain element by using descendant selectors.
Type selectors and Pseudo classes :
ul a:link { color: #0000ff; }
ul a:visited { color: #0000a0; }
ul a:hover { color: #ff0000; }
ul a:active { color: #ffff00; }
In this example, the styles are applied only to the links within the UL element.
Class selectors and Pseudo classes :
.example a:link { color: #0000ff; }
.example a:visited { color: #0000a0; }
.example a:hover { color: #ff0000; }
.example a:active { color: #ffff00; }
In this example, the styles are applied only to the links within the element with the class "example".
ID selectors and Pseudo classes :
#example a:link { color: #0000ff; }
#example a:visited { color: #0000a0; }
#example a:hover { color: #ff0000; }
#example a:active { color: #ffff00; }
In this example, the styles are applied only to the links within the element with the ID "example".
<html> <head> <title>TAG index</title> <style type="text/css"> .example a:link { color: #0000ff; } .example a:visited { color: #0000a0; } .example a:hover { color: #ff0000; } .example a:active { color: #ffff00; } </style> </head> <body> <ul class="example"> <li><a href="../../index.html">The styles are applied to this link.</a></li> <li><a href="../index.html">The styles are applied to this link.</a></li> <li><a href="index.html">The styles are applied to this link.</a></li> </ul> <ul> <li><a href="../../index.html">The styles are not applied to this link.</a></li> <li><a href="../index.html">The styles are not applied to this link.</a></li> <li><a href="index.html">The styles are not applied to this link.</a></li> </ul> </body> </html>
The focus pseudo class apply style to an element while it has the focus.
input:focus { background-color: #f2f2f2; }
In the above example, the style is applied to the INPUT element while it has the focus.
<html> <head> <title>TAG index</title> <style type="text/css"> input { width: 200px; } input:focus { background-color: #f2f2f2; } </style> </head> <body> <form method="POST" action="sample.cgi"> <p><input type="text" name="name"></p> <p><input type="text" name="address"></p> <p><input type="text" name="email"></p> </form> </body> </html>
The lang pseudo class apply style to an element that include the specified language.
p:lang(en) { color: red; }
en = Language code
In the above example, the style is applied to the P element that include the specified language (en).
<html> <head> <title>TAG index</title> <style type="text/css"> p:lang(fr) { color: #4040FF; } </style> </head> <body> <p lang="fr">Bonjour</p> <p lang="en">Hello</p> <div lang="fr"> <h3>French</h3> <p>Bonjour</p> </div> </body> </html>