| Cascading
Style Sheets: A Primer Computing Resources >> Instruction >> Tutorials >> Web Development >> CSS |
|
|
Syntax & RulesLike any language, computer or natural, CSS has syntactic rules that dictate how a CSS rule is written. Here are a few definitions to absorb before we dive in.
So how
would we write a set of rules for a simple HTML document? Let's look
at the style sheet that governs all the tutorials on Tutorial Junction
(that's right, every single page of every tutorial).
.nav { color: #6699CC; font-size: 12px; font-family: Arial, Helvetica, sans-serif; text-decoration: none;}
.nav:hover { color: #FF9933; font-size: 12px; font-family: Arial, Helvetica, sans-serif; text-decoration: underline;} h1 { font-size: 20px; font-weight: normal; color: #FF9933; font-family: Arial, Helvetica, sans-serif;} h2 { font-size: 16px; font-family: Arial, Helvetica, sans-serif; font-weight: normal;} h3 { font-size: 14px; font-family: Arial, Helvetica, sans-serif; font-weight: normal;} a { color: #6699CC;} a:hover { color: #FF9933;} td { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} th { font-family: Arial, Helvetica, sans-serif; font-size: 12px;} p { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} body { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} li { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} .page_title { font-size: 22px; color: #FF9933; font-family: Arial, Helvetica, sans-serif;} ul { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} ol { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333;} .nav_selected { font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: #FF9933; font-size: 12px; text-decoration: none;} There are 16 CSS rules here. Each one has multiple declarations in their blocks which are all surrounded by curly braces. Simple enough, right? Yes and no. You may have noticed that some of the selectors begin with a period/dot (.). Well, that's because there are different types of selectors. The simplest selector is simply an HTML tag. Any HTML tag and/or element can be a CSS selector. In our example above, all H1 elements will be rendered at 20 pixels in height, with a normal font weight, in the color that corresponds to #FF9933 (that's orange). That's a great demonstration of the control that CSS gives a designer. There are
also class selectors. These are the selectors that begin
with the period/dot. Class selectors can be used multiple times and on any
tag within an HTML document. So how does that work? First, all class selectors
are preceded by a period/dot. Well, let's say that we wanted to style a <p> tag
with a class selector called "nav". In your CSS file, the rule would begin
with .nav and it would be followed by the declaration
block. This
is the first rule in the CSS style sheet above. It looks like this:
.nav { color: #6699CC; font-size: 12px; font-family: Arial, Helvetica,
sans-serif; text-decoration: none;}
In your HTML document, you would encode all your <p> tags like so:
<p class="nav">the content goes here</p>.
If you had all your <p> tags encoded like this and you decided to change their styles later, all you would have to do is change the declaration block for the nav class in the style sheet. As you can see, this takes a bit of planning to work well, but it all pays off in the end. There is another
type of selector called the ID selector that works very similarly
to the class selector. The biggest difference between the two is that a class
selector may be used repeatedly in an HTML document whereas an ID selector
can be used only once. An ID selector is unique. Here's
an example of how an ID selector CSS rule would be written:
H1#unique {color: brown; font-size: 18px;}
An ID selector is always preceded by a pound sign/hash. It would be encoded in HTML like this: <H1 id="unique">content</H1> Here, I have decided that I'm only going to have one instance where the H1 element will use this rule with the ID of "unique". In this case, the ID selector "unique" can be used ONLY once. In other words, you should only use it with one individual H1 element. If you want to use a selector in multiple rules (or repeatedly), you should use a class selector. A class selector can be used with any element encoded with <tag="class_name">. Why do this? Well, let's say you've got a declaration block that is a styled HTML list and you will use it repeatedly in your website to control the HTML. Using a class selector named ".list" (because class selectors are always preceeded by a period/dot) will enable you to use it with multiple HTML elements. For example, you could use this class selector with the p tag by writing <p class="list">, or with the div tag by writing <div class="list">, or with the unordered list tag by writing <ul class="list"> all in one HTML file and each of those tags with the class of list will adhere to the CSS declarations you lay out in the CSS file. Alternatively, if you had a part of your webpage that would occur only once, it would make more sense to use an ID selector because it is a unique (i.e. not recurring) part of your webpage. You could simply name the ID selector "navbar" for convenience. In your CSS file then, the rule would begin with #navbar and be followed by the declaration block. In your corresponding HTML file, you could use the ID selector with a p tag by writing <p id="navbar"> and again, this paragraph (or navigation bar wrapped in a p tag) would adhere to the CSS declaration(s) you laid out in the rule. If this is confusing to you right now, well, then that's pretty normal. We'll actually put these methods into place soon so they become more concrete. First, let's take a look at a few ways to incorporate style sheets into your HTML document. |
|