CSS lesson 1

Document Sample
CSS lesson 1 Powered By Docstoc
					                                           Lecture 1

                    CSS(Cascading Style Sheets)
Cascading Style Sheets (CSS) are a way to control the look and feel of the HTML documents in
an organized and efficient manner. With CSS it is possible to:

      Add new looks to your old HTML
      Completely restyle a web site with only a few changes to your CSS code
      Use the "style" you create on any webpage you wish!

What is CSS?

      CSS stands for Cascading Style Sheets
      Styles define how to display HTML elements
      Styles were added to HTML 4.0 to solve a problem
      External Style Sheets can save a lot of work
      External Style Sheets are stored in CSS files

Styles Solved a Big Problem

HTML was never intended to contain tags for formatting a document.

HTML was intended to define the content of a document, like:

<h1>This is a heading</h1>

<p>This is a paragraph.</p>

When tags like <font>, and color attributes were added to the HTML 3.2 specification, it started
a nightmare for web developers. Development of large web sites, where fonts and color
information were added to every single page, became a long and expensive process.

To solve this problem, the World Wide Web Consortium (W3C) created CSS.

A style sheet can, and should be, completely separate from the HTML documents. Using CSS it
is possible to separate web site's design and formatting (CSS) from the content (HTML). In
HTML 4.0 and upper, all formatting could be removed from the HTML document, and stored in
a separate CSS file.

CSS defines HOW HTML elements are to be displayed. Styles are normally saved in external
.css files. External style sheets enable you to change the appearance and layout of all the pages in
a Web site, just by editing one single file!
All browsers support CSS today.

CSS Syntax
A CSS rule has two main parts: a selector, and one or more declarations:

The selector is normally the HTML element you want to style.

Each declaration consists of a property and a value.

The property is the style attribute you want to change. Each property has a value.

CSS Example
CSS declarations always ends with a semicolon, and declaration groups are surrounded by curly

  p {color:red;text-align:center;}

To make the CSS more readable, you can put one declaration on each line, like this:


Until you become accustomed to using CSS code, you will probably find your CSS code not
working as you expected. A leading cause of this might be an out of place :, ;, {, or } or it might
be that you forgot to use a :, ;, {, or } when it was required. Be sure to check back here if you
ever have issues with the correct format for CSS.

CSS Comments

Comments are used to explain your code, and may help you when you edit the source code at a
later date. Comments are ignored by browsers.

A CSS comment begins with "/*", and ends with "*/", like this:

  /*This is a comment*/
  /*This is another comment*/

CSS Id and Class
In addition to setting a style for a HTML element, CSS allows you to specify your own selectors called
"id" and "class".

The id Selector
The id selector is used to specify a style for a single, unique element.

The id selector uses the id attribute of the HTML element, and is defined with a "#".

The style rule below will be applied to the element with id="para1":


  Do NOT start an ID name with a number! It will not work in Mozilla/Firefox.

The class Selector

You may be wondering if it is possible to give an HTML element multiple looks with CSS. Say
for example that sometimes you want the font to be large and white, while other times you would
prefer the font to be small and black. CSS would not be very useful if it did not allow you to
have many different types of formats for a single HTML tag. Well, you are in luck! CSS allows
you to do just that with the use of classes.

The class selector is used to specify a style for a group of elements. Unlike the id selector, the
class selector is most often used on several elements.

This allows you to set a particular style for any HTML elements with the same class.

The class selector uses the HTML class attribute, and is defined with a "."

In the example below, all HTML elements with class="center" will be center-aligned:

.center {text-align:center;}
You can also specify that only specific HTML elements should be affected by a class.

In the example below, all p elements with class="center" will be center-aligned: {text-align:center;}

Sample code and output

                                <style type="text/css">
            Code                }

                                <h1 class="center">This heading will not be affected</h1>
                                <p class="center">This paragraph will be center-aligned.</p>

                                This heading will not be affected
                                                This paragraph will be center-aligned.

  Do NOT start a class name with a number! This is only supported in Internet Explorer.

You can use CSS classes with any HTML element! However, what happens if we had already
defined a value for the default <p> tag, would this cause any problems for classes of the
paragraph tag?

Well, when this happens the CSS class for any <p> tag will override the default <p> CSS. If the
CSS class uses a CSS attribute already defined by the default CSS, then the formatting defined
by the class will be the value that is used.

It may be easier to imagine that the CSS for a generic HTML element is the starting point and
the only way to change that look is to overwrite the attributes using CSS classes. Please see the
example below for a visual of this tricky topic.

CSS Code:
p{ color: red; font-size: 20px; }
p.test1{ color: blue; }
p.test2{ font-size: 12px; }
HTML Code:
<p>This is a normal paragraph.</p>
<p class="test1">This is a paragraph that uses the p.test1 CSS code!</p>
<p class="test2">This is a paragraph that uses the p.test2 CSS code!</p>


This is a normal paragraph.

This is a paragraph that uses the p.test1 CSS code! The p.test1 paragraph remained the same size,
but it's color changed.

This is a paragraph that uses the p.test2 CSS code! The p.test2 paragraph remained the same color, but it's size changed.

Remember, CSS code in classes will override the general CSS code for that element. p.test1
overrides p!

CSS How To Use
When a browser reads a style sheet, it will format the document according to it.

Three Ways to Insert CSS

There are three ways of inserting a style sheet:

         External style sheet
         Internal style sheet
         Inline style

External Style Sheet

When using CSS it is preferable to keep the CSS separate from your HTML. Placing CSS in a
separate file allows the web designer to completely differentiate between content (HTML) and
design (CSS). An external style sheet is ideal when the style is applied to many pages. With an
external style sheet, you can change the look of an entire Web site by changing one file. Each
page must link to the style sheet using the <link> tag. The <link> tag goes inside the head

<link rel="stylesheet" type="text/css" href="mystyle.css" />
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. An example of a style sheet file is
shown below:

hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}

  Do not leave spaces between the property value and the units! "margin-left:20 px" (instead of
"margin-left:20px") will work in IE, but not in Firefox or Opera.

File Creation
Let us get started by making that external CSS file. Open up notepad.exe, or any other plain text editor
and type the following CSS code.

CSS Code:
body{ background-color: gray;}
p { color: blue; }
h3{ color: white; }

Now save the file as a CSS (.css) file. Make sure that you are not saving it as a text (.txt) file, as
notepad likes to do by default. Name the file "test.css" (without the quotes). Now create a new
HTML file and fill it with the following code.

HTML Code:
<link rel="stylesheet" type="text/css" href="test.css" />
<h3> A White Header </h3>
<p> This paragraph has a blue font.
The background color of this page is gray because
we changed it with CSS! </p>

Then save this file as "index.html" (without the quotes) in the same directory as your CSS file.
Now open your HTML file in your web browser and it should look something like this..

Internal Style Sheet

An internal style sheet should be used when a single document has a unique style. You define
internal styles in the head section of an HTML page, by using the <style> tag, like this:

CSS Code:
<style type="text/css">

p {color: white; }
body {background-color: black; }
<p>White text on a black background!</p>


Inline Styles

It is possible to place CSS right in the thick of your HTML code, and this method of CSS usage
is referred to as inline css.

Inline CSS has the highest priority out of external, internal, and inline CSS. This means that you
can override styles that are defined in external or internal by using inline CSS. However, inline
CSS detracts from the true purpose of CSS and loses many of the advantages of style sheets by
mixing content with presentation, so use it sparingly.

To use inline styles you use the style attribute in the relevant tag. The style attribute can contain
any CSS property. The example shows how to change the background color and the text color of
a paragraph:

CSS Code:
<p style="background: blue; color: white;">A new background and
 font color with inline CSS</p>

Common Inline CSS Mistakes

When using CSS inline you must be sure not to use quotations within your inline CSS. If you use
quotations the browser will interpret this as the end of your style value. Instead, copy the form as
have been displayed below.

CSS Code:
<p style="background: url("yellow_rock.gif");">
This is broken</p>

<p style="background: url(yellow_rock.gif);">
This is workin'</p>


      This is broken

Multiple Style Sheets

If some properties have been set for the same selector in different style sheets, the values will be
inherited from the more specific style sheet.

For example, an external style sheet has these properties for the h3 selector:


And an internal style sheet has these properties for the h3 selector:


If the page with the internal style sheet also links to the external style sheet the properties for h3
will be:

The color is inherited from the external style sheet and the text-alignment and the font-size is
replaced by the internal style sheet.

Multiple Styles Will Cascade into One

Styles can be specified:

       inside an HTML element
       inside the head section of an HTML page
       in an external CSS file

Tip: Even multiple external style sheets can be referenced inside a single HTML document.

Cascading order

What style will be used when there is more than one style specified for an HTML element?

Generally speaking we can say that all the styles will "cascade" into a new "virtual" style sheet
by the following rules, where number four has the highest priority:

   1.   Browser default
   2.   External style sheet
   3.   Internal style sheet (in the head section)
   4.   Inline style (inside an HTML element)

So, an inline style (inside an HTML element) has the highest priority, which means that it will
override a style defined inside the <head> tag, or in an external style sheet, or in a browser (a
default value).

  Note: If the link to the external style sheet is placed after the internal style sheet in HTML
<head>, the external style sheet will override the internal style sheet!

Shared By:
Description: Learn CSS simply with HTML.