Using Cascading Style Sheets (CSS)

Priority of Styles

Styles may be specified in an external document, within the HTML document's <head> region, and inside an HTML tag. More than one style may be specified for an HTML tag, in which case the order of priority is important.

Priority of Styles

A style defined in an HTML tag takes precedence over styles defined in the head of the HTML document. Similarly, styles defined in the head of the HTML document take precedence over styles defined in an external style sheet.

The following style sheet is used to define the <p> tag in the examples below.

mystylesheet.css

p
{
    color:#f00;
    background:transparent;
}

Example 1

In the following example, the definition of the <p> tag within the HTML document will take precedence above the definition of the <p> tag defined within the <head> of the HTML document and the definition of the <p> tag defined in the external style sheet.

example1.html

<html>
<head>
    <title>Title for this Page</title>
    <link href="mystylesheet.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        p
        {
            color:#0f0;
            background:transparent;
        }
    </style>
</head>
<body>
    <p style="color:#00f;background:transparent;">Blue Text</p>
</body>
</html>

Example 2

In this example, the definition of the <p> tag defined within the <head> of the HTML document will take precedence over the definition of the <p> tag defined in the external style sheet.

example2.html

<html>
<head>
    <title>Title for this Page</title>
    <link href="mystylesheet.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        p
        {
            color:#0f0;
            background:transparent;
        }
    </style>
</head>
<body>
    <p>Green Text</p>
</body>
</html>

Example 3

This example uses the definition of the <p> tag defined in the external style sheet.

example3.html

<html>
<head>
    <title>Title for this Page</title>
    <link href="mystylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <p>Red Text</p>
</body>
</html>

Example 4

This final example doesn't specify a style for the <p> tag, so the default style of the browser will be used instead.

example4.html

<html>
<head>
    <title>Title for this Page</title>
</head>
<body>
    <p>Default Browser Text</p>
</body>
</html>

Priorities With the Anchor Element's Pseudo Classes

When specifying styles for the anchor element's psuedo classes, order is important. When you define styles for the same elements, the styles for that element are combined. When there are conflicting styles, the latest one overrides previous definitions of the style (which is inkeeping with the cascading concept, and true for all elements). The least significant style should be written first, and the most significant style written last. With the anchor element, this would be link, visited, hover, then active. If you define a basic style for the anchor element, it should be positioned before the pseudo classes.

You might also like...

Comments

About the author

Gez Lemon United Kingdom

I'm available for contract work. Please visit Juicify for details.

Interested in writing for us? Find out more.

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“There are only 3 numbers of interest to a computer scientist: 1, 0 and infinity”