Place your message here

Your Guide to Professional
Web Site Design and Development

Web Development
HTML Codes
HTML Tips
Javascript Snippets
216 Safe Colors
Symbols
Web Directory
Web Resources
Internet Channels

Web Development: Business, Advertising, Internet Marketing, Promotion and Web Site Design

| Web Development | HTML Codes | HTML Tips | Javascript Snippets | 216 Safe Colors | Symbols | Recommendations |

Cascading Style Sheets (CSS); Getting Started

By William Bontrager

If you've been putting off using CSS because you have some uncertainty about exactly how to use it, then today is the day you'll get started. You'll see the simplicity of CSS. You'll realize that making style changes to your site's web pages is not only quick and easy, but also fun.

There are four ways a style can be applied to a web page. Only the first method is presented in this Getting Started article. The other methods are mentioned so you're aware they exist.

1. Styles are specified through the use of an external file, a method called "external style sheet" or "linked style sheet." This is the method you'll learn in this article. There is one file on your site that specifies the styles. Then, one line in each of your web pages links to that file. To change the style on all your web pages, simply change the external file.

2. Styles are specified in the HEAD area of each page the style is applied to. This method is called "embedded style sheet."

3. A style is specified in the actual HTML tag where the style is applied. This is called an "inline style."

4. A combination of embedded and external style sheets. For this, each page has an embedded style sheet. Within the embedded style sheet are certain codes that import one or more external style sheets. This method is called "imported style sheet."

To create an external style sheet, make a file named mysite.css with the following three lines:

BODY, TD, P, LI, BLOCKQUOTE { 
   font-family: sans-serif;
   }

Upload mysite.css to the same directory on your server where you have your main index page.

Now, in the source code of one or more of your web pages, in the HEAD area, put this line (make a backup of the pages before changing, in case you want to restore to the original):

<LINK REL="stylesheet" TYPE="text/css" HREF="mysite.css">

(The above assumes your web page is in the same directory as the style sheet file, but that situation isn't required. The HREF="__________" URL can be a relative URL or an absolute http://... URL.)

That's all there is to it. Every page with the above line in the HEAD area will have it's text "magically" converted to a sans-serif font.

Okay, there may be just a bit more to it than that. If you currently have FONT tags specified in the source code of your web pages, then those will need to be removed so the CSS style can do its job.

Once all FONT tags removed from your page, let's experiment a bit. In the mysite.css file, change the font from sans-serif to serif:

font-family: serif;

Like magic, all your text is converted to a serif font.

A paragraph about definitions: The "font-family: serif;" line is a style element. Styles can have other elements, like size and color, and some of those are addressed below. Each style element has two parts, as you've noticed. The first part is called the "property" and the second part is called the "value." The property is followed by a colon and the value is followed by a semi-colon. The property must be specified before the value, and they must appear together. Thus, "font-family: serif;"

So far, we've specified the generic sans-serif and serif fonts. These allow the browser to use its default sans-serif or serif font.

You can, however, specify exact font names, and if the font name is available on the user's computer then it will be used. Arial and Helvetica are common sans-serif fonts for PC and Mac desktop computers. To control the exact font name to be used, with backups in case the one you specify isn't available on the user's computer, list the font names in order of preference, separated with a comma. Example:

font-family: arial,helvetica,sans-serif;

The above line in the style sheet will cause the browser to use font Arial if it's available on the user's computer. If Arial is not available, Helvetica will be used. If neither Arial nor Helvetica are available, the browser will choose a sans-serif font that is available. And if no sans-serif font is available, the browser will use its internal default font, whatever that may be.

While you're changing the font family specifications, let's also specify the font size and text color. Your mysite.css file can now have these five lines:

BODY, TD, P, LI, BLOCKQUOTE { 
   font-family: arial,helvetica,sans-serif;
   font-size: 14px;
   color: #000000;
   }

The above specifies a font size of 14 pixels ("px") in height. Font sizes can also be specified in points ("pt") and other measurements. However, use the pixel measurement; pixel measurement maintains the most consistent size among different monitors and operating systems.

The above also specifies a text color. The color can be specified either as a hexadecimal number preceded with a "#" character (like the example) or by a color name such as "black".

Once you upload the above style sheet, your pages will have black, 14 pixel sized text, Arial font. Change the color to

color: blue;

and suddenly all your text is blue. Change the size to

font-size: 55px;

and your text is huge.

Just one simple change in mysite.css changes every page that has the one-line <LINK REL="stylesheet" ...> tag in the HEAD area.

By now, you've probably been wondering about the

BODY, TD, P, LI, BLOCKQUOTE {

line in file mysite.css. That is a list of tags that the style will affect, tags separated with a comma. In this case, it affects the BODY tag (which is everything in the page BODY that doesn't otherwise have a style), the TD tag (table data cell), the P tag (paragraph), and the BLOCKQUOTE tag.

Let's add another style, one for the H1 tag. Your mysite.css file should now have these twelve lines:

BODY, TD, P, LI, BLOCKQUOTE { 
   font-family: arial,helvetica,sans-serif;
   font-size: 14px;
   color: #000000;
   }

H1 {
   font-size: 36px;
   font-weight: bold;
   text-align: center;
   color: red;
   background: blue;
   }

The above will cause the H1 text to be 36 pixels in size, bold, centered, colored red, and with a blue background. The font face will be Arial because that's what's specified for BODY, and H1 didn't specify any different.

Once you upload mysite.css, all your web page's H1 text will be the specified style.

A note about degradation: Some users have style sheets turned off in their browsers. Some browsers are unable to process style sheets at all. Although the percentage of those is likely to be tiny, it's still a good idea to design your style sheets so your pages degrade gracefully for such users. In other words, if you're going to specify a font size of 24px, that's closer to a non-style sheet H2 size than it is to H1 or H5. So, if you can, use H2 for that particular font size because it would degrade with more grace than H1 or H5 would in that situation.

Your mysite.css file can contain specifications for any HTML tag. The file can be named something else, if you wish, although by convention it should have the .css file name extension.

Yes, there is a lot more to be learned. Even with just this small amount of knowledge, however, you have the ability to specify the font attributes for any and all HTML tags that contain visible text -- throughout your site. Except one. The one exception is the anchor tag, often referred to as the "A" link tag, the tag you use when you create a link on a web page. The A tag can have three different styles, one for each of it's states: link, active, and visited. To see how it works, change your mysite.css style sheet file so it has these thirty lines:

BODY, TD, P, LI, BLOCKQUOTE { 
   font-family: arial,helvetica,sans-serif;
   font-size: 14px;
   color: #000000;
   }

H1 {
   font-size: 36px;
   font-weight: bold;
   text-align: center;
   color: red;
   background: blue;
   }

A:link {
   color: yellow;
   background: red;
   font-weight: bold;
   }

A:active {
   text-decoration: underline;
   }

A:visited {
   color: red;
   background: yellow;
   font-style: italic;
   text-decoration: line-through;
   }

With the above, your linked text will be bold, colored yellow, and with a red background. When the link is active (while it's being clicked on), it will be underlined. Once the linked page has been visited, the text will be italic and have a line through it, the text color will be red, and the background will be yellow.

Note that the "active" and "visited" behave differently in different browsers. If you specify font changes in the "active" style, the change might or might not display. Changing the font style to italic in the "visited" style causes the font to be italic; however, in some browsers the font weight remains bold as specified in the "link" style and in other browsers the font weight becomes normal.

Another A tag style you may wish to utilize is "hover" style. This style becomes effective when the mouse cursor hovers above the linked text. The "hover" style works in IE 5+ and in Netscape 6+. The style has no effect for browsers that don't support "hover". Here is an example "hover" style:

A:hover {
   text-decoration: none;
   color: purple;
   background: pink;
   font-size: 22px;
   font-weight: bold;
   }

The above causes any underlines or line-throughs to disappear, turns the linked text color purple with a pink background, changes the text size to 22 pixels, and makes the text bold.

Some of the styles demonstrated in the examples cause dramatic effects. They serve to demonstrate possibilities. Your actual implementation will probably be more pleasant to the eyes.

Will Bontrager

About the Author:

Copyright 2003 Bontrager Connection, LLC
William Bontrager Programmer/Publisher, "WillMaster Possibilities" ezine mailto:possibilities@willmaster.com

Are you looking for top quality scripts? Visit Willmaster and check out his highly acclaimed Master Series scripts. Some free, some for a fee.

Back