HTML & CSS Wiki
Advertisement

CSS pseudo-classes are used to add special effects to some CSS selectors.

Below is the syntax for writing pseudo-classes:

selector:pseudo-class {
                       property:value;
}

Class selectors can also be used with pseudo-classes:

selector.class:pseudo-class {
                             property:value;
}

Anchor pseudo-classes[]

Anchor links can be displayed in different ways in a CSS-supporting browser:

a:link {
        color:#FF0000;        /* unvisited link */
} 
     
a:visited {
           color:#00FF00;     /* visited link */
}  

a:hover {
         color:#FF00FF;       /* mouse over link */
}  

a:active {
          color:#0000FF;      /* selected link */
}  

a:hover must come after a:link and a:visited in the CSS definition in order to be effective and a:active must come after a:hover in the CSS definition in order to be effective.

Note: Pseudo-class names are not case-sensitive.

Pseudo-classes and CSS class selectors[]

Pseudo-classes can be combined with CSS classes:

a.red:visited {
               color:#FF0000;
}
<a class="red" href="css_syntax.asp">Red link if it has been visited.</a>

:first-child[]

The :first-child pseudo-class matches a specified element that is the first child of another element. For it to work in IE a <!DOCTYPE> must be declared.

In the following example, the selector matches any <p> element that is the first child of any element:

p:first-child {
               color:blue;
}
<p>I am a strong man.</p>
<p>I am a strong man.</p>

In the following example, the selector matches the first <i> element in all <p> elements:

p > i:first-child {
                   font-weight:bold;
} 
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>

In the following example, the selector matches all <i> elements in <p> elements that are the first child of another element:

p:first-child i {
                 color:blue;
}
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>

:lang[]

The :lang pseudo-class allows you to define special rules for different languages. Internet Explorer 8 (and higher) supports the :lang pseudo-class if a <!DOCTYPE> is specified.

In the example below, the :lang class defines the quotation marks for <q> elements with lang="no":

q:lang(no) {
            quotes: "~" "~";
}
<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>

:focus[]

The :focus pseudo-class allows you to add a special style to an element that has keyboard input focus, such as the color of an input field that gets focused. Internet Explorer 8 (and higher) supports the :focus pseudo-class if a <!DOCTYPE> is specified.

In the example below, the :focus class defines a background color for the input box that is currently selected:

input:focus {
             background-color:yellow;
}
<form action="form_action.asp" method="get">
First name: <input type="text" name="fname" />
<br />
Last name: <input type="text" name="lname" />
<br />
<input type="submit" value="Submit" />
</form>

Pseudo-classes[]

Below is a chart that lists the pseudo-classes along with a brief description:

Pseudo-class Description
:active Adds a style to an element that is activated.
:first-child Adds a style to an element that is the first child of another element.
:focus Adds a style to an element that has keyboard input focus.
:hover Adds a style to an element when you mouse over it.
:lang Adds a style to an element with a specific lang attribute.
:link Adds a style to an unvisited link.
:visited Adds a style to a visited link.

See Also[]

Advertisement