What Is CSS
What Is CSS
Welcome to the CSS workshop! Before you begin this workshop you should have some basic understanding
of HTML and building web pages. What is CSS anyway and what will it help me do? Over the course of this
workshop you will learn the foundations of CSS and be able to create your own style sheet.
Objectives
Understand what a style sheet is and how it actually styles a web page
Know how to create a style sheet and link an html document to the style sheet
Understand the basic building blocks of any style sheet: rules, selectors, properties and values
Understand how to control the basic appearance of text
Demonstrate how to customize the appearance of links
Define background properties
Prerequisites:
You will need a basic understanding of HTML. You may want to take the HTML Basics workshop before
you begin this workshop. You will need a text editor, such as Notepad and an Internet browser, such as
Internet Explorer or Netscape.
Mac Users: SimpleText is the default text editor on the Mac. In OSX use TextEdit and change the following
preferences: Select (in the preferences window) Plain text instead of Rich text and then select Ignore rich
text commands in HTML files. This is very important because if you don't do this HTML codes probably
won't work.
One thing you should avoid using is a word processor (like Microsoft Word) for authoring your HTML
documents.
At the end of this workshop, you will create your own HTML page.
Introduction
What is CSS?
CSS is an abbreviation for Cascading Style Sheets. CSS works with HTML and other Markup
Languages (such as XHTML and XML) to control the way the content is presented. Cascading Style Sheets
is a means to separate the appearance of a webpage from the content of a webpage. CSS is a
recommendation of the World Wide Web Consortium (the W3C). The W3C is a consortium of web
stakeholders: universities, companies such as Microsoft, Netscape and Macromedia, and experts in many
web related fields. The presentation is specified by styles, which are presented in a style sheet. If you're
familiar with word processing programs like Microsoft Word, you have probably played around at least a
little bit with styles. For example, when you want to make the headline text of your document big and bold,
the hard way to do it would be to select the text, select a font face and weight, and select the color. The
easier way to do it (presuming your document has more than one headline) is to create a "rule", or style,
for all the headlines in your document. Then all you have to do is to make one rule, and keep on applying
that to all your headers.
CSS in its most basic form works exactly like this. Instead of using <FONT> tags over and over again to
control little sections of your page, you can establish some rules to apply globally, to a single page or all
the pages on your site. CSS is a great time saver.
Reduces Time
It is much easier to update pages. It is much faster to update a page that uses styles over using
<FONT> tags and the like. With CSS, you can decide how headings should appear, and enter that
information once. Every heading in every page that is linked to this style sheet now has that
appearance. Want to make every heading of level 3 obviously different from those of level 2? Edit the
style sheet, and every such heading now has the altered appearance. Consider how much time you will
save. With cascading style sheets, whole organizations can share a small number of style sheets,
ensuring consistency across the site with no need for constant updating and editing to accommodate
changes.
Anatomy of CSS
The three types of HTML elements
An important concept to understand is that there are basically three types of HTML tags: ones that indicate
a block-level element, ones that indicate an inline element, and replaced tags.
Think of block-level elements as boxes that have a line break before and after. The <p> tag is a good
example of a box-level element: as you know, there is always a line break and space before and after each
paragraph. Block-level elements are the ones you will spend most of your time applying style rules to.
Inline elements on the other hand, don't have line breaks before and after. Inline elements are used, well,
inline: an example would be the <b></b> tag that bolds a section of text.
The third kind of HTML tag is called a replaced tag. I'm not sure why it's called "replaced" but what it means
is simply that these elements have a set width and height. The most used replaced tag is the <img> tag,
which most often than not, you must specify a height and width for it.
The declaration contains the property and value for the selector. The property is the attribute you wish to
change and each property can take a value. The property and value are separated by a colon and
surrounded by curly braces:
If the value of a property is more than one word, put quotes around that value:
body { font-family: "sans serif";
}
If you wish to specify more than one property, you must use a semi-colon to separate each property.
This rule defines a paragraph that will have blue text that is centered.
p { text-align: center; color: blue }
You can group selectors. Separate each selector with a comma. The example below groups headers 1, 2,
and 3 and makes them all yellow.
h1, h2, h3 { color:
yellow}
Let's see how we can translate a typical <FONT> tag to a CSS style. Here is the <FONT> tag first: <font
size="3" color="green" face="verdana, arial, sans-serif">Some text</font> This is the same thing (more
or less) as a CSS style:
selector
{
font-family: verdana, arial, sans-serif; font-
size: 1em;
color: green;
}
The selector in this case can be any tag that is on your page.
Style Sheet Syntax
Though easy to use, CSS is a very specific standard. This means that if you don't get the grammar right the
browser won't know what to do. Either your style sheet will not work at all, or it will work in unexpected
ways. Above you've seen what the parts of a style sheet are, and an example of how they are put together.
Referring to the examples above, here are some simple rules to follow to get your style sheet right every
time.
1. Every statement must have a selector and a declaration. The declaration comes immediately after
the selector and is contained in a pair of curly braces.
2. The declaration is one or more properties separated by semicolons.
3. Each property has a property name followed by a colon and then the value for that property. There
are many different types of values, but any given property can only take certain values as set down
in the specification.
4. Sometimes a property can take a number of values, as in the font-family. The values in the list
should be separated by a comma and a space.
5. Sometimes a value will have a unit as well as the actual value, as in the 1.3em. You must not put a
space between the value and its unit.
6. As with HTML, white space can be used to make your style sheet easier to read and write.
Attaching Styles
There are three ways that styles can be associated with an HTML document. First, styles can be placed
inline in a document. Second, a style sheet can be embedded in the head of an HTML document. The third
way of associating web pages with style sheets is to place a link in the head of the HTML file to an external
style sheet. With this link, when the browser begins reading the page, it sees the style sheet link, and
downloads the style sheet, then uses the style sheet to draw the page.
Inline styles
Style rules can be specified right in the HTML tag, with style="style rules". Here is an example:
<p style="font-family: trebuchet, times, serif; font-size: 20px; font-weight: 600; color: #7C3030;
backgroundcolor: #B5D6A9"> The style rules above look like this! </p>
You would embed a style sheet within an HTML document when you want a single document to have a
unique style. The head of the HTML document would look something like this:
<head>
<style type="text/css">
hr {color: brown}
p {font-family: arial, verdana, "sans-serif";}
body {background-color: #ffffff}
</style>
</head>
The browser will now read the style definitions, and format the document according to it.
It's easiest for CSS beginners to start by putting CSS rules in the <head> section of the web page.
This way, you can make changes, preview the page in the browser, and see immediate results. Within the
<head> </head> section of your HTML page, put these tags:
<style type="text/css">
<!--
Your CSS rules go here!
-->
</style>
What are the <!-- --> tags for? That's to hide your CSS from older, non-CSS-capable browsers. If you want
to add comments within your style section, put them between /* */ like this:
<style type=”text/css”>
<!-- Body {font-family: arial, sans-serif;} /* this is a css comment */ -->
</style>
<head>
<linkrel="stylesheet" type="text/css"
href="mystyle.css" />
</head>
The browser will read the style definitions from the file mystyle.css, and format the document according to
it. This can be either a relative or absolute url. The relative url is relative to the HTML document, unlike url's
within style sheets which are relative to the style sheet. An external style sheet can be written in any text
editor. The file should not contain any HTML tags. Your style sheet should be saved with a .css extension.
A simple css file looks like this:
body {
font-family: verdana, arial, "sans serif";
color: #000000;
background: white;
} p
{
text-align: center; color:
black;
font-family: arial;
}
Placing the properties on separate lines makes the style sheet easier to read. Some rules for external style
sheets:
Note: if there is no specific containing or parent element, the Big Parent of the page is the <body> tag.
The paragraph below has this style, with a background-color and border specified so you can see what's
going on:
As you see, the margin has changed, but the text inside is butting right against the borders of the box. To
put some space there, add 10px of padding:
p{
margin-left: 10px;
margin-right: 20px;
padding: 10px;
background-color: #FFCC99;
border: 5px dotted gray;
}
CSS Styles
Now that you are getting the hang of CSS rules, let's look at applying text, font, border and list styles. To
apply styles, you redefine HTML elements like <p>, <h1>, <h2> and others. An example of redefining the
<p> tag:
p{
font-family: verdana, arial, helvetica, sans-serif; font-
size: 12px;
color: #000000;
}
Font and text appearance are the things we most want to control with CSS. Font selector rules mostly apply
to things we used to control with the <font> tag, while text selector rules cover other things that influence
the way a piece of text if presented.
Background Styles
The background property will let you set the background color, set the background as an image, repeat a
background image and set a background image position on a page. Visit this sample page -
http://profdevtrain.austincc.edu/css/sample_background.htm to see the background property at work.
For a list of styles that can be applied, visit the Resources page.
Border and List Styles
Border Styles
Borders can be applied to most HTML elements within the body. The Border properties allow you to specify
the style, color, and width of an element's border. In HTML tables are usually used to create borders around
text, but with the CSS Border properties you can create borders that can be applied to any element.
You can apply a border style to any of the four sides of an element by using top, bottom, right or left
designations in your selector. The following border styles created the border around this example box:
p{
border-top-color: red; border-top-
style: solid; border-bottom-color:
navy; border-bottom-style: dashed;
border-bottom-size: 5px;
}
List Styles
The List properties allow you to change between different list-item markers, set an image as a listitem
marker, and set where to place a list-item marker. Visit this sample page to see the background property at
work.
When a value is zero, you do not need to state a unit. For example, if you wanted to specify no border, it
would be border: 0.
Note: A web page is not a static, absolute medium. It is meant to be flexible. Because of this, it is generally
accepted that 'em' or '%' are the best units to use for font-sizes, rather than 'px', which leads to non-re
sizable text in most browsers, and should be used sparingly, for border sizes for example.
Colors
CSS brings 16,777,216 colors to your disposal. They can take the form of a name, an ' rgb' (red/green/blue)
value or a hex code. Defining your font-color as red is the same as rgb(255,0,0), which is the same as
rgb(100%,0%,0%), which is the same as #ff0000, which is the same as #f00.
There are 16 valid predefined color names. These are aqua, black, blue, fuchsia, gray, green, lime, maroon,
navy, olive, purple, red, silver, teal, white, and yellow. Transparent is also a valid value.
The three values in the rbg value are from 0 to 255, 0 being the lowest level (for example no red), 255 being
the highest level (for example full red). These values can also be a percentage.
Hexadecimal (or hex) is a base-16 number system. We are generally used to the decimal number system
( base-10, from 0 to 9), but hexadecimal has 16 digits, from 0 to f.
The hex number is defined by a hash character ( #) and can be three or six digits in length. Basically, the
three-digit version is a compressed version of the six-digit (#f00 becomes #ff0000, #c96 becomes #cc9966
etc.). The three-digit version is easier to decipher (the first digit, like the first
value in rgb, is red, the second green and the third blue) but the six-digit version gives you more control
over the exact color.
To assist you with hexadecimal colors and color schemes, visit these two sites:
http://www.december.com/html/spec/color.html http://wellstyled.com/tools/colorscheme2/index-en.html
Classes
The class attribute lets you apply style rules to a group of elements. Class stands for Classify. A class
selector is a name preceded by a period (.) Here is an example:
So for every paragraph that you want in red text you would use the class defined above. Another way
to specify a class is simply like this:
.someclass {color: red;}
This omits the element in front, so the class "someclass" can be applied to any element on the page.
When to use which? It all depends the situation. When the class rules are really specific to an HTML
element, then you can add the class name to the element. If you want a general class selector, then use
one on its own.
ID's
An ID attribute identifies one element on a page. An ID selector is a name preceded by a hash character
(#). Here is an example:
#class {
color: navy;
border: 1px black solid;
}
This html is written: <p
id="class">#class { color:
navy;
border: 1px black solid;
}</p>
As this example is an ID, you would use this only once. If you wanted to have more than one paragraph
with navy text and a solid black border you would make this a class.
Pseudo-classes
Pseudo-classes are used in CSS to add different effects to some selectors, or to a part of some selectors.
Pseudo-classes are attached to selectors to specify a state or relation to the selector. They take the form
of selector:pseudo class { property: value; }, simply with a colon in between the selector and the pseudo
class. The most common pseudo-class is the link style. Links can have four different states.
We can create rules that apply to links in any of these states. The definition order must be a:link, a:visited,
a:hover and a:active in order to be effective. The following links are created with these style definitions :
What if you want the links in a certain section of your page to be different, like for menus? Pseudo classes
can be combined with other classes.
Author stylesheets
You as the author (designer) of the web pages can create several stylesheets. Here's how they are ranked.
1. Inline styles and embedded styles (styles on the HTML page itself). Inline and embedded styles are
called Persistent styles, and they usually have the top weight; in other words, persistent styles
override any styles in external stylesheets.
2. The main or Preferred external stylesheet, which is linked with the attribute rel= in the LINK tag,
follows in the hierarchy.
3. Alternate stylesheets are not used until the user selects them explicitly. If an alternate stylesheet is
selected, the preferred one is turned off, but the persistent styles remain.
1. It's possible to push a style rule up to the "front of the line", by giving it an !important label,
regardless of which stylesheet it's in. For instance, if there are two conflicting rules for the same
selector:
H1 {font-family: verdana;}
H1 {font-family: times !important;}
Then the second rule will prevail and the H1 element will be in Times.
2. The more specific a rule is, the more weight it has. This means for example that style rules applied
to an ID selector or a class selector have more weight than style rules applied to generic type
selectors.
3. Finally, when all other rules are exhausted, the style rules that are listed last take higher
precedence. (That's why persistent styles (the ones actually on the HTML page) take higher
precedence over linked external stylesheets, because they get processed last.)
Inheritance
Inheritance describes how style rules are passed on from the parent element to the child element. What
parents and children? Well, any element that is nested within another element on an HTML page is a child,
and the surrounding element is the parent Take a look at a typical HTML web page structure:
The <p> element is a child of the <body> element; the <em> <b> and <span> elements are children of
the <p>. The big parent here is the <body>.
This means that in a browser, any style rules that are applied to a parent element gets inherited by the
child elements unless the child elements have style rules of their own. For instance, if you have a
style rule for the BODY like so:
Then all of the children of the BODY should also display with the Comic Sans MS font, unless specified
otherwise. Note that this parent and child concept is very important.
A child element inherits the color and background-color values from the parent, but if there is a conflict
between rules, and an incompatible rule wins out for the parent element, there could be problems. Let's say
a the BODY style rule that "wins out" had this style:
With no background-color value specified, the paragraphs on that page are going to be pretty unreadable!
In any case, the more complicated your CSS styles get, the more you have to test everything to see that
things are working together. But not to worry - practice does make things easier.
CSS Comments
Comments are used to explain the code, and may help when you edit the source code at a later date.
Comments are ignored by browsers.
A CSS comment starts with /* and ends with */. Comments can also span multiple lines:
Example:
p{
color: red;
/* This is a single-line comment */
text-align: center;
}
What Now?
Now you're ready to venture out on your own. It's time to put things together and start creating your own
CSS style sheets. Take the online quiz and then complete the following assignments:
Assignment
• Make a list of the HTML tags you use all the time. Group them into block-level, inline and
replaced tags.
• Download the practice page and turn it into a simple HTML page, with no table tags. If you can,
stick to <P>, <H1>, <H2>, etc. tags. Then, put the tags that indicate that CSS rules will go there in
the <HEAD> section.
You can use a text editor, Dreamweaver or other web creation software to edit the file. Visit the Resources
pages for a detailed list of CSS properties. Post this document to your web site and email the url to the
instructor at lniles@austincc.edu, or e-mail the document as an attachment to the instructor.
Download - http://www.austincc.edu/hr/profdev/eworkshops/css/practice.html
CSS Properties
Background Properties:
Text Properties:
length
text-indent Indents the first line of text in an element
%
none
capitalize
text-transform Controls the letters in an element
uppercase
lowercase
Font Properties:
normal italic
font-style Sets the style of the font oblique
normal bold
bolder lighter
100
200
300
400
500
600
700
fontweight Sets the weight of a font.
800
900
Border Properties:
List Properties:
Resources
Here are links to resources we have used throughout this workshop. Also included are some resources for
you to refer to when you are out creating style sheets on your own.
SUBMITTED BY:
ANGELIKA L. BALBIN
RONNIEL G. MUNCADA
SUBMIITED TO:
MR. BRYAN LINTAO
Cascading Style Sheets (CSS)