Classes and IDs
The last section demonstrated how a style sheet
can apply a style to all elements in a web page. If we want
all our paragraphs to be red, we just need to specify
p {color: red} in the style sheet. Easy, we’re done.
But what if we want only some paragraphs to be red? We
could override our “red-text” rule by making copious use of
the style attribute: <p style="color: black">.
However, as
“The style Attribute” points out, this is
not a good solution in the long term.
Fortunately, there is a way to “name” a style and re-use it over and over. This method is called a style sheet class.
Style Sheet Classes
In
Example 3.10, “Two CSS Classes”, we have an exchange of
dialogue between two characters. We’ll differentiate each
character’s lines by applying a unique style. It would be
tedious and counterproductive to write out the full style in
each p element, so instead we’ll define each
style once in the style sheet and use a class to call it
multiple times.
Example 3.10. Two CSS Classes
<html>
<head>
<title>An Ideal Husband</title>
<style type="text/css">
p {color: #000000}
p.goring {color: #ff0000}
p.phipps {color: #008000}
</style>
</head>
<body>
<p class="goring">
LORD GORING. [Taking out old buttonhole.] You see,
Phipps, Fashion
is what one wears oneself. What is unfashionable is what
other
people wear.
</p>
<p class="phipps">
PHIPPS. Yes, my lord.
</p>
<p class="goring">
LORD GORING. Just as vulgarity is simply the conduct of
other
people.
</p>
<p class="phipps">
PHIPPS. Yes, my lord.
</p>
<p class="goring">
LORD GORING. [Putting in a new buttonhole.] And
falsehoods the
truths of other people.
<p class="phipps">
PHIPPS. Yes, my lord.
</p>
<p class="goring">
LORD GORING. Other people are quite dreadful. The only
possible
society is oneself.
</p>
<p class="phipps">
PHIPPS. Yes, my lord.
</p>
<p class="goring">
LORD GORING. To love oneself is the beginning of a
lifelong romance,
Phipps.
</p>
<p class="phipps">
PHIPPS. Yes, my lord.
</p>
</body>
</html>
For each character, we’ve defined a class, goring
and phipps. Note that we’ve introduced a
brand-new CSS selector: instead of
element{declarations}
We have
element.class{declarations}
Once we define the selectors p.goring and
p.phipps, we can apply them to any paragraph
through the class attribute. You may add the
class attribute to any element that can take
the style element (in other words, most of
them). The class attribute is usually much
better to use than the style attribute, because
it’s much easier to change what a class means later on.
In
Example 3.10, “Two CSS Classes”, the classes only work
with the p element. Applying them to some other
element, as in, <em class="goring">, would
fail. To make the selector “generic” so that it works with
any element, just leave off the element name:
.goring {color: #ff0000}
Unique IDs
Another method for assigning styles is to use an ID. An ID is a unique identifier for a element on a page. IDs are different from classes in a couple of key ways:
-
IDs are unique. You may only use a particular ID once on a page.
-
You can use IDs to create a link to a specific location within a page, as discussed in “Linking Within Pages”.
To apply a style to an ID, the syntax should look familiar. Instead of using a period, use a hash mark (#):
p#goring {color: #ff0000}
That’s it. In order to apply the style, you would just
write <p id="goring">, as opposed to <p
class="goring">.
The only problem here is that you may only apply
id="goring" once on the entire web page. In other
words, we are presuming that Lord Goring is speaking only
once. Given what we know of Lord Goring, this is probably a
bad assumption.
If you use IDs in your style sheets, make sure that they are for unique elements. IDs are ideal for navigation bars, headers, footers, and other elements that appear only once on the page.
See Also
- Next Page: Div and Span
- Previous Page: Style Sheets