Cascading Style Sheets

In the early days of the Web, designers just had the original 91 HTML tags to work with. Using HTML, they could make headings, paragraphs, and basic text formatting, but they didn't have a lot of control over how individual elements in a page would display.

Cascading Style Sheets, or CSS, was developed to give designers more control over how the HTML was displayed. CSS allows you to set styles, layout, and formatting much more efficiently than HTML. CSS also allows you to set the styles for a group of pages, or a whole site at once, so that you can easily give all of your pages a consistent look that is easily maintained.

Layout and styles can be set using one master CSS file that links to multiple HTML pages. When you want to change something, you can change it in the master style sheet, which will change all of your pages that link to that style sheet.

Why do they Cascade?

You can set CSS styles in 3 different places on a website:

  1. A separate master stylesheet that links to your pages.
  2. Styles are embedded in the <head> section of an individual page.
  3. Styles can be inserted into an html tag in the lines of code.

CSS style rules cascade because the lowest level rule always overrides any other style rules. What this means is that style rules embedded in your HTML tags override rules in the master stylesheet, and in the <head> section of your page. Style rules in the <head> section of your page override any in the master style sheet.

There are different reasons to place style rules in each of the three places, but the most common and efficient way to set styles for a website is to have a separate master stylesheet. That way, you can make changes to just one stylesheet, and those changes will cascade over all pages that link to your main stylesheet.

Here is an example of what the code looks like when you link your pages to a master stylesheet-- you can view this same code at the top of all the pages in this course, because they all link to my master stylesheet. The entire head section is copied here, but the important part is in red.

<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <link type="text/css" rel="stylesheet" href="webdes.css" media="screen" /> <title>Web Design Lesson 4: Cascading Style Sheets</title> </head>

The master stylesheet in the example above is named "webdes.css", and all of the pages in this course link to it.

Sometimes you may have a master stylesheet, but you will want one particular page to display a bit differently than the others. You can still have that page link to the master stylesheet, but you can include the individual style rules for that page in the <head> inside an html style tag. In the example below, all of the style rules from the main stylesheet will be followed, except that in this page (and this page only) paragraphs will be in bold font with a red border.

<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <link type="text/css" rel="stylesheet" href="webdes.css" media="screen" /> <style> p {font-weight: bold; border: red; }
</style> <title>Web Design Lesson 4: Cascading Style Sheets</title> </head>

You may also want one particular part of a page to display differently. In that case, you would want to embed your style rules directly in your HTML tags. If I wanted that bold font with a red border for just one paragraph, my code would look like the example below:

<p style=font-weight: bold; border: red;>Paragraph text goes here</p>

Setting style rules

Naming a class of an element.

CSS allows you to set rules for how HTML elements are displayed. CSS has its own special syntax and ways of setting rules. Here is an example style rule:

p.example { width: 50%; margin-left: 15%; border: thin solid red; padding: 1em; font-size: 90%; font-weight: bold; }

Click here for an example of what this looks like

Above is the style rule for the type of paragraph I'm using for code examples in these lessons. In CSS, you can put a period before a name that you make up, and this will designate a class of element with a specific name; in this case, a paragraph. In my HTML, I can type: <p class="example">, and my page will display the example class of paragraph. My example paragraph has a width of 50% of the page, a left margin of 15%, and a thin red border. The term "padding" refers to the amount of space the browser leaves around an element, in this case, 1em, which is one letter width of white space around all sides of the element. The font size is 90% of the normal font size this browser displays, and the font-weight is bold. Each time I type in <p class="example"> anywhere on my site, this is how the paragraph will be displayed.

Setting style rules for an entire page

You can also use CSS to control how an entire page displays. For example, here is a style rule for the body of a page:

body { font-size: 120%; font-family: Arial, sans-serif; color: green; font-weight: bold; line-height: 200%; background-color: lavender; }

Click here to see how this code will display.

All pages that linked to this style rule would display green bold-faced Arial (or sans-serif if the computer did not have Arial) font at 120% of the default size. Text would be double-spaced, and the background color would be lavender.

Changing styles mid-line

Suppose you had made a class of paragraph like the ones I'm using for my examples, but in one lesson, you wanted to use a normal weight font instead of boldface. A situation like this would be a good time to embed styles directly in your html. Here is how I would change my paragraph example class to have a normal weight font:

<p class="example;" style="font-weight: normal;">

By adding the "style" attribute to my tag, I was able to change the font weight to normal, but leave everything else the same. If you wanted to, you could embed all of your styles directly in your HTML like this, but it would be time-consuming and would probably involve a lot of repetitive effort.


You can use CSS to control everything about how your page displays. For example, you can use css to control your font size, color, weight, and positioning. You can also use HTML to do some of these things. Newer coding standards encourage CSS for any stylistic decisions, because the content of the page should be separate from how it displays.

Below are two examples of styled text, one done with HTML and one done with CSS:

I love Paris in the spring!

I love Paris in the spring!

The W3C is depreciating, or retiring, HTML tags that have been replaced with CSS, such as the <font> tag, although browsers will still support these tags for at least a few years.


Create a webpage that includes at least one example of each of the following style rules. You may embed your styles in the html or in the head of the document, or you may create an external style sheet. Take a look at the resources page for extra information about CSS.
When you finish your page, upload it here and post in the form to let me know you have uploaded it.

Your page must display examples of each of the following elements and style rules. There may be ways to do some of these things using HTML tags, but for this assignment, you must use CSS to make these changes.

  1. Change the weight of the font.
  2. Underline some text.
  3. Create a paragraph with a font size that is 50% of the default font size.
  4. Create a box with text inside, either by changing the background color for an area, or using a border around an area.
  5. Create a link that is red when it hasn't been clicked, and black after it has been clicked.
  6. Create a double-spaced list with circle-shaped bullets.
  7. Create a heading with a purple sans-serif font.