Integrating Cascading Style Sheets (CSS) into your HTML pages can not only enhance your site, but also make coding easier. In this first of a two-part series, we investigate the language of CSS and how the syntax differs from standard HTML. In 'Basic Cascading Style Sheets: Part II ', we will build upon this knowledge and create a working example.
What is CSS?
Cascading Style Sheets were introduced specifically to add flexibility to the HTML language. There are many things you can do with CSS, such as positioning items on your Web page using X, Y and Z coordinates - hence reducing the need for HTML tables.
We will focus on the formatting of HTML text. CSS is used so frequently by Web page designers that its use and understanding is a necessity for anyone doing HTML coding.
What does it do?
In the context of this column, CSS allows you to create a template for your text's appearance. Imagine a scenario where you have 10 pages on your site, each containing several subheadings. For consistency, you may want all subheadings to look the same. Consequently, you may use the following code several times throughout each of your 10 pages (where 'Subheading Text' is your desired title).
<font color="blue" size="3" face="arial"><b>Subheading Text</b></font>
What if a decision was then made that all those subheadings should be red, not blue? Using HTML alone, you would have to locate and make the changes several times in each page - a time-consuming task.
With CSS, you can create a template of common text characteristics used throughout the site. These details are then linked to each of the 10 pages. Instead of having to re-code the entire Web site, one change is made in the template, and all subheadings will simultaneously change to reflect this.
There are two commonly used ways to implement CSS within your Web site. The first is to create a separate .css file which links to all your HTML pages, as referred to above. This is used specifically for multiple pages on a site.
For now, we will review the insertion of these settings into the HEAD of your HTML document. The formatting therefore only affects the file containing the code.
Inserting CSS into the HTML code
Let's take the subheading example used earlier. Insert the following code between the <HEAD> and </HEAD> tags of your HTML file. It doesn't matter if this is before or after the <TITLE> tags.
You have now created the formatting that can be referenced with every subheading in this file.
Instead of writing the full font and bold commands used earlier, you now simply need to write the following into your HTML code for each instance of the subheading:
<font class="subheading">Subheading text</font>
This calls the settings within the HEAD and attributes them to the text between the open and close FONT command. If you change the colour in the CSS settings to red, all calls to this class will automatically change.
See Figure 1 for example code.
The code looks different to HTML
You will notice that this language is subtly different from standard HTML. The insertion of the STYLE type in the HEAD section lets the HTML page know you are about to use CSS.
Notice the full stop and the item name. Although we named the item '.subheading', we could have named it '.giraffe' or something equally non-obvious, as long as the font class referenced it accordingly. (We will discuss the use of the full stop in 'Basic Cascading Style Sheets: Part II '). The settings for each item are then surrounded by curly brackets. This denotes the beginning and end of that object declaration.
In this instance, we then list four settings. The colour of the contained text will be blue; the face will be Arial; the size is 13 pixels; and the text is bold. Note the use of a colon between the property and value (color:blue), and that each value ends with a semicolon.
These are only four of the many formatting styles available. In 'Basic Cascading Style Sheets: Part II ' we will investigate others, and look at implementing CSS to change the appearance of links. Additionally, we shall create a working example and link our CSS code from a separate template to affect multiple pages.