Hostgator coupons for up to 99% off hosting for Dynamic Drive visitors!
Advanced Search Usage Terms Submit Contact
Dynamic Drive CSS Library

CSS Library: Links & Buttons: Other: Here

CSS Pseudo-classes

Author: CSS Drive

Pseudo-class are an interesting group of selectors in CSS that apply to elements when they're in a certain state or condition, such as with a link, when the mouse is over it. This makes for some interesting and lightweight visual effects.

Pseudo-class (CSS2.1) Description Applies to
:link Applies to links that have not been visited. links
:visited Applies to links that have been visited. links
:hover Applies to an element which the mouse is currently over. all
:active Applies to an element currently being activated by the user (ie: the mouse is held down over). all
:focus Applies to an element while it has the user focus. all
:first-child Matches an element that is the first child of some other element. all
:first-letter Applies to the first letter of a paragraph. block level elements
:first-line Applies to the first formatted line of a paragraph. block level elements
:lang Applies to an element when it's in the designated language. all

The first four pseudo classes are typically used on links, even though 3rd and 4th apply to elements in general. This is because in IE (as of IE6), ":hover" and ":active" don't work on elements other than links.

CSS Example #1 (link pseudo-classes):

A:link    { color: red }    /* unvisited links */
A:visited { color: blue }   /* visited links   */
A:hover   { background-color: yellow } /* user hovers over link*/
A:active  { color: lime }   /* active links    */

This is a very common CSS definition to manipulate the look of links on the page. The order in which you define the four selectors is important, typically known as LVHA (link visited hover active). If you alter the order, some of your selectors will be suppressed and not take effect due to the way CSS handles cascade/ ordering.

CSS Example #2 (:first-child pseudo-class):

img:first-child{ border: 1px solid gray; }

This applies a border to any image that is the first child of another element.

CSS Example #3 (:lang pseudo-class):

:lang(fr) { font-weight: bold; }

This gives elements that are determined by the browser as French (using a variety of methods) a bold font.

Code Info

Rate this code:

Date Posted: 05/03/2006

Revision History: None

Usage Terms: Click here

Your Comments (29)

Got a question or need help customizing this CSS code? Post it in the CSS Forums. If you have a comment or suggestion instead, post it in the comments section below.

Comment Pages 1 of 3 pages  1 2 3 >

The language code is cool! I didn't know you could do that.
Posted by HanzyFranzy on 06/13, 07:30 PM
So how do I do "onClick"
ie. when a link is clicked it changes to another colour?
Posted by John on 06/17, 05:35 PM
@John: use <tag>:visited thing.

Can you apply these to the body tag?
Posted by Daniel Neri on 06/23, 10:06 AM
pseudo-classes? great idea :)
Posted by Wahyu on 07/14, 07:34 PM
lovin the css, beats that basic html and java with a very large stick.
Posted by john on 07/15, 05:39 AM
This is a handy reference. Bookmarked! Cheers.
Posted by Blaze on 07/16, 08:55 AM
I never knew about the :lang before . . . what uses does it have though?
Posted by Ryan on 08/01, 02:43 PM
thanks man i was in need of that , finally i had it and now my wallpaper site is great

my wallpaper site
Posted by satyam on 10/02, 01:46 AM
Needs to have info about how to do effects eg highlight on hover or line-through or underline etc..

Posted by Max on 10/24, 09:54 AM
Good Question, Ryan. Can you use
to change the language when you change your style sheet?
Posted by Anthony on 11/24, 11:55 AM

Comment Pages 1 of 3 pages  1 2 3 >

Commenting is not available in this weblog entry.
Copyright 2006-2015 Dynamic Drive Read our Usage Terms before using any of the CSS codes.