From desktops to servers, find the right IT Support for your business.

Using External Style Sheets - Part 3

David Dorn considers the methods and advantages of classes in external stylesheets

A 'class' is, basically, a subset of a selector or declaration. Let's say you've declared the colour of the <H1> tag to be black - you can declare a subset of <H1> to be white. It will retain all the other properties of the parent tag or selector, but it must be both named and separated from the parent tag - the declaration would look like:

H3 { font-size: 14pt, font-weight bold, font family: Verdana, color:#000000 }

H3.white { colour: #FFFFFF }

When you call the new class (which is, in this case '.white') in your HTML the resulting code would look like:

<H3 class=white> blah blah blah<H3>

So, that line would take on all of the properties of the <H3> tag, but they would modified by the properties of the '.white' class - anything declared in the '.white' class overrides declarations on the tag - so you get white text in <H3> style!

Universailty of classes

Classing goes a step further, as you might have guessed from the preceding paragraph. You can define a class all on its own:

.crosshead { font-family: verdana, font-weight: bold, color:#CC3300, font-size:10pt }

actually defines the crosshead class on the PPC pages - note that the class name is preceded by a 'dot' - this is vital, as it tells the CSS handlers in browsers that you are defining a class, and not a tag.

Once you've defined a class like this, you need not then define every possible combination of every tag with every class - the class modifies every tag. Thus, you can have all of the following lines of HTML, and the results would look the same for each:

<H1 class=crosshead> blah blah blah </H1>

<p class=crosshead> blah blah blah </p>

<EM class=crosshead> blah blah blah </EM>

In each case the class declaration as I've shown it above overrides the tags (H1, p and EM) to render the text.

Unfortunately, you can only use one class per tag - so you couldn't, for instance, have both the .white and .crosshead classes nested inside the <H1> tag - but that shouldn't be a problem, as you can define a separate class to provide you with the stylistic properties you would achieve by nesting in that way.

Links:

One of the most commonly changed elements in a Web site is the link - some Webmasters delight in making their links look different - and using CSS externally is a great way of doing this:

A:link {font-family:verdana, font-weight:bold, font-variant:smallcaps, tex-decoration:none }

Is but one way of classing all your links. That line sets all links to be bold, small caps, with no underline and they'll be in Verdana as a font.

There are other link declarations:

A:hover

A:active

A:visited

And here's how we apply them in the PPC stylesheet:

a:link { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #003399; text-decoration: underline}

a:visited { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #333366; text-decoration: underline }

a:hover { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #CC3300; text-decoration: none}

Neat bits

There are two other clever tricks you can play with what are known as pseudo-elements:

P:first-line { color:red }

And

P:first-letter { colour:maroon, font-size:300% }

The 'first-line' modifier allows you to define how the first line of a paragraph should be rendered - in this case I've picked red as a colour. You can use all the other properties as well, of course. The first-letter controls - guess what! - the first letter of the paragraph (and, indeed, any quote marks that may go along with it) - so the first-letter statement above gives you a first letter that's three times the size of the rest of the characters in that paragraph.

NOTE: these two pseudo elements are not supported in IE 5 and below (5.5 and 6 and above do support them) and Netscape 4.5 and earlier doesn't either. - be aware of this. However, the rendering degrades well in browsers that don't support it - readers just don't see anything different.

Read part one

Read part two

 

David Dorn

Keep up to Date with PPC

RSS feed icon

Add to Google
Free Sitemap Generator