You have already seen in previous lecture notes how to establish a class in CSS and connect it with an element:
<style type="text/css">
p.warning { color: red; }
</style>
<p class="warning">High Voltage</p>
Whenever you use a class, you as the author decide which paragraphs should have be warnings and which ones shouldnrsquo;t.
A pseudo-class, on the other hand, lets you attach a style to an element whose status is determined by the user. For example, you might want a visited link to have a different color than a link that hasn’t been visited. Since you have no control over whether a user has clicked a link or not, you can’t use a regular class.
Links have four states:
You can change the appearance of a link in all these
situations with CSS like this. Notice that instead of using a
period . as you would for a regular class, you
use a colon : to indicate a pseudo-class.
/* turn off underlining on all links */
a { text-decoration: none; }
a:link { color: #009900; }
a:visited { background-color: #ffffcc; }
a:hover { text-decoration: underline; }
a:active { font-style: italic; }
You may use any or all of these pseudo-classes on a link, but you must use them in the order shown, or they will not work properly.
Normally, unvisited links are blue and visited links are purple. In this example, I changed the color of unvisited links—as an example. In most cases, you should not change link colors without a compelling reason, because people are used to seeing blue and purple. If you are using a blue background, of course, you must change the colors, or your links will be totally unreadable! That qualifies as a compelling reason. :)
There are other pseudo-classes that let you set an
element’s style depending upon its position
relative to other elements. These include
:first-child,
:first-line, and
:first-letter,
:before and
:after , but they are beyond the scope of
the discussion here.