HTML and CSS Reference
An HTML document links to an external style sheet via a link element in the document's head , as you
learned earlier in this chapter. Listing 3-11 shows another example.
Listing 3-11. Linking to an external style sheet
<title>Power Outfitters Superhero Costume and Supply Co.</title>
<link rel="stylesheet" type="text/css" media="screen" href="styles.css">
<p>Power Outfitters offers top of the line merchandise at
rock-bottom prices for the discerning costumed crime-fighter.</p>
When a browser downloads and begins processing the document, it will follow that link to retrieve the
external style sheet and process it as well, automatically applying its rules to render the page. A browser
downloads an external style sheet only once, then it's cached in the browser's memory for use on
subsequent pages or even for future visits. This keeps your documents lighter and can improve the speed
and performance of your entire website.
You're not limited to a single external style sheet; you can link to several different CSS files in one
document, with each style sheet having its own link element in the document's head . Depending on the
complexity of your site, you might have one style sheet containing general rules for the entire site while
pages within a certain section can link to a second style sheet defining specific styles for that set of pages.
You might also prefer to break your styles apart into separate files based on their purpose: for example,
one style sheet defining colors and backgrounds and another style sheet defining your page layout.
You can also combine all three methods—inline, embedded, and external—to style your web pages,
although it's rarely advisable. If just one page on your site needs some additional rules, you might choose
to include an embedded style sheet for that page alone. You may even, very rarely, want to call out one
element for special treatment and use an inline style for just that element. In almost every case, external
style sheets are the best approach: they eliminate presentational markup, improve a site's performance,
and are much easier to maintain.
With so many CSS rules being dictated from so many different sources, some overlap may be
unavoidable. You already have specificity on your side, with more specific selectors overruling general
selectors. But specificity alone isn't enough to resolve all the potential style conflicts a browser might run
into when it's trying to render a web page. Where specificity fails, the cascade order steps in to sort things
The Cascade Order
Browsers apply CSS rules in the order in which they're received; later rules override previous rules.
Browsers download separate style sheets in a particular order as well. In the case of external style sheets,