今天是阳历 2024 年 04 月 28 日 星期日 农历 三月月 二十日

 

[Online Resource Centre 教学材料]   [E-Teacher 电子教师]   [Homepage Constructions 网页建设 ]
 

Cascading Style Sheets

Including CSS Rules

A Motivational Example | Redefining The Tags | Including CSS Rules | Customizing Other Tags | Customizing Tags | Classes

There are three different ways you can add style sheet capabilities to a page. Each method provides a different degree of access. You can:

  1. add a css rule inside a single tag; then the rule applies only to that instance of that tag
  2. put a rule in the <head> tag of a page; then the rule can apply to the entire page
  3. put a rule in an external file; then the rule can be applied to multiple pages (even an entire web site)

Methods 2 and 3 allow us to create a new "default" version of a tag, for a page or set of pages, respectively. Method 1 is most often used to override one of these new defaults on a case-by-case basis, either to return to the original browser's default version of a tag or to create a new one-time use version of a tag. Now let's look at examples of each of these approaches.

Method 1:
Applying a Single CSS Rule Inside a Single HTML Tag


At one extreme of css accessibility, we can arrange that a rule applies only to a single instance of a tag. We can do this by adding a css rule inside the particular tag that we want to affect.

For instance, suppose we've used method 2 or 3 (we'll see how to do this in a moment) to create a new default version of the <h3> tag that has the charactersistics shown in our example of the previous section: a dark red (cc0000) bold sans-serif font at 16pt. But now, for some reason, we decide we want one <h3> tag on one of our pages to show the heading in dark green (00cc00) italics.

We could always go through the procedure that we had to use before the availability of style sheets: use the <font> tag to specify all the characterstics we want for this particular heading (and add <p> after the heading). But now, since we've used style sheets to create a new default version of <h3> we can also use css to modify only those properties of the new default that we want to change for this particular heading: We do this by adding css to redefine these properties inside the tag that we want to modify:

<h3 style="font-style: italic; color: #00cc00;">
H3 Heading in Green Italics
</h3>

Note that we add the css rule to the tag by introducing a new attribute for the tag: style. The value we give this attribute is just the rule that we want to implement, i.e., the list of new definitions that we want to provide for the <h3> tag in order to override its default properties. Namely, we include font-style: italic to put the heading in italics and we include color: #00cc00 to make the heading dark green. As in our previous example of rules for the various h-tags, each definition consists of the name of the property to be defined and the value that the property is defined to have. The property and its value are separated by a colon. Consecutive definitions in the rule are separated by semicolons. The entire rule (i.e., the value assigned to the style attribute of the tag) is enclosed in quotes. Here's the rule in action: Example 2.

Method 2:
Putting CSS Rules on the HTML Page on Which They Are Used


Now let's see how to modify a single HTML page so that the set of six css rules we listed previously will create new default versions of the <h1>,..., <h6> tags on this page. All we have to do is add the following inside the <head> tag of our page:

h1 {font-family: Arial, Helvetica, sans-serif;
     font-size: 24pt; font-weight: bold; color: #cc3300}
h2 {font-family: Arial, Helvetica, sans-serif;
     font-size: 18pt; font-weight: bold; color: #cc3300}
h3 {font-family: Arial, Helvetica, sans-serif;
     font-size: 16pt; font-weight: bold; color: #cc3300}
h4 {font-family: Arial, Helvetica, sans-serif;
     font-size: 14pt; font-weight: bold; color: #cc3300}
h5 {font-family: Arial, Helvetica, sans-serif;
     font-size: 12pt; font-weight: bold; color: #cc3300}
h6 {font-family: Arial, Helvetica, sans-serif;
     font-size: 10pt; font-weight: bold; color: #cc3300}

Note that this is just the set of six css rules we defined earlier, now enclosed inside <style> and </style>. Also note that <style> has an attribute here:

type="text/css"

This attribute identifies the type of style sheet being specified (as we noted earlier, there are actually other types of style sheets than cascading style sheets, but these alternative types aren't widely supported). Including this information probably isn't really necessary for newer browsers; these browsers should be able to determine the correct style sheet type from the syntax of the rules. But doing so is probably a good idea since it may help older, pre-css-capable browsers ignore the code (also see the next paragraph). Including the attribute may also help people who examine this part of your HTML page's coding.

Note that we've also enclosed the six rules inside an HTML comment (just inside <style> and </style>). It's not absolutely necessary that you do this, but it's a good idea. This will also help make sure that older, non-css capable browsers won't see (and perhaps attempt to display literally) the css rules.

Here's another look at these rules in action: Example 1. After you click this link, use your browser to view the source of the page that's loaded into the new window. Look at how the sections headings are produced on this page: no <font> tags, only the <h1>,..., <h6> tags. Also notice that the six css rules creating the new tag versions are located in the page <head>.

Note that once we have included the css rules that "reconfigure" the <h1>,..., <h6> tags, then anytime we use the default version of one of these tags on this page the headings will be produced according to the specifications of these rules. (We can still override the new specifications on a case-by-case basis if we wish.)

Method 3:
Putting CSS Rules in an External File


Instead of putting css rules in the head of the page where we want new versions of tags to be used, we can place the css rules in a separate file and then refer to that "external" file on the page where we wish to use the new tag versions. (We call this an external file, because now the rules are placed outside the file containing the HTML that will be affected by the rules.)

One advantage of this approach is that we can refer to the file with the css rules on any number of HTML pages. This will allow us to apply a set of customized tags uniformly to a whole group of pages (even to an entire web site if we wish). In addition, if you later need to reconfigure your customized tags on a large number of pages, all you'll need to do is make the desired changes to the css rules in one place: just edit the rules in this external file. Then voilà, all your custom headings and/or other tags will be automatically updated on all of the HTML pages that refer to the external file.

The format of the external file is very simple: it's just a list of css rules for the tags that we want to define. If you wish, you can also include css comments to help you remember what the rules are for, how you may wish to use them, etc. In this external file the list of rules should not be enclosed in a <style> tag or in an HTML comment. In fact, you should not include any HTML tags in an external css file.

You can include a single line comment in a css file by preceding the comment with two forward slashes //. You can include multiline comments by putting /* at the beginning of the comment and */ at the end. If you use multiline comments, be careful to use the beginning and closing symbols in pairs. If you start a comment but forget to signal its end, things will probably not work as you'd intended.

You can give an external css file any name that's legal on the computer where the style sheet will be used. It's probably a good idea to add a .css extension to the file name; this will help you remember the purpose of the file. The .css extension is not required for the external style sheet files to work however.

Connecting an External CSS File to an HTML Page

In theory, there are two ways an HTML page can refer to an external file that contains css definitions: the HTML file can 1) link to the css file or 2) it can import the css file. In practice, however, import is not yet widely supported by existing browsers, so we won't say any more about it here.

Linking an HTML file to an external css file is extremely simple: you just need to include a <link> tag in the head of the HTML file. The <link> tag has three attributes, two of which are always the same (so you can think of them as part of the boilerplate for the tag). The third attribute gives the name of the external file being linked. For example, to link an HTML file to a set of css rules defined in a file named stylefile1.css, you'd use a link tag with these attributes:

  • rel=stylesheet (always the same)
  • type="text/css" (always the same; and optional)
  • href="stylefile1.css"

This page links to style file rules in an external file: Example 3. And here's the link tag the example HTML page contains:

 

<link rel=stylesheet type="text/css" href="stylefile1.css">

In this case the external file stylefile1.css is in the same folder as the HTML file that is linking to it. If these files are in different folders, the value assigned to href should include not only the name of the css file but also its location (path) relative to the HTML file.

A Shortcut: Eliminating Repetition in Rules

You've probably noticed that in our above rules for the <h1>,... ,<h6> tags there is a lot of repetition. All of the tags are defined to use the same font face, weight, and color; the only differences in these rules are the font sizes. In cases like this we don't really need to repeat all the definitions that are the same in every rule. Instead we can use a single rule to set the common characterstics of several tags and then use additional rules for individual tags to specify only the ways in which we want the tags to differ. Here's a case in which we get the same results as before but with a more compact set of rules: Example 4. And here are these new more compact rules:

h1, h2, h3, h4, h5, h6
{font-family: Arial, Helvetica, sans-serif;
     font-weight: bold; color: #cc3300}
h1 {font-size: 24pt;}
h2 {font-size: 18pt;}
h3 {font-size: 16pt;}
h4 {font-size: 14pt;}
h5 {font-size: 12pt;}
h6 {font-size: 10pt;}

Note that to have a set of tags be governed by the same rule we list all those tags, separated by commas, at the beginning of the rule, just outside the braces.

 
[Online Resource Centre 教学材料]   [E-Teacher 电子教师]   [Homepage Constructions 网页建设 ]
      School Name 学校名称
      Online Resource Information 线上资源资讯
      News & Events 学校新闻
      Events Calendar 每日事件