CSS Tutorial: Part 1

Now that we have the first few lessons under our belts, we will be taking the next step towards total nerd glory with this first of a three-part lesson on creating a pure CSS web page.

Not just CSS styling, but CSS positioning too, that means NO TABLES required!

Once completed, you will be creating pages in sophisticated ways that will allow your web sites to be seen on all types of devices including normal computers, cell phones, Iphones, PSPs … any device really!!

… That also means you will be able to put out websites with much less work where your web pages will load faster and will be easy to update and print!


CSS Template Layout – Part 1 of 3

In this easy to understand (I hope!) tutorial on creating web pages with CSS, I will concentrate on the key components of css, where (by the end of the tutorials) you will be able to create nice looking CSS based web pages.

After completing this tutorial, you should have enough information to explore CSS and web page design even further … into to areas I don’t cover here.

Let’s get started:

You can download the CSS and HTML files we build in this tutorial: CSS files

You can check out what the page should look like here: CSS Example Page

Tags used in this CSS based layout:

Because of the power of CSS, we will be able to reduce the number of HTML tags we use in a page big time, all the while still being able to lay out great-looking pages using only 6 types (for lack of a better word) of HTML tags.

The tags we will use to layout the content:

1. <h.> The Heading tags which range from ‘<h1></h1>’ to ‘<h6></h6>’ , are going to be used to mark/tag headings in our pages. So the most important heading will be wrapped in a <h1> tag and the least important in a <h6> tag. An example of a heading for this article:

CSS Template Layout

This tells the browsers and the search engines, too, that this page is primarily about: ‘CSS Template Layout’

All browsers have a default size (for each <h.> tag) as to how it renders text placed between these tags. Many of these defaults can be unusable (especially <h1>) because they come out too big. But never fear, CSS is here, and we will use CSS to make the text sizes more to our liking.

2. <p> The Paragraph tag is used to mark parts of the pages as being ‘paragraphs’, simple enough. Paragraph tags are what is called a ‘block element’; that means that it acts like a block where a space is automatically inserted before and after each <p> tag pair. You will see it work in the examples coming up.

3. <ul> and <ol> List tags will be used to create our menus. The tag <ul> is the ‘un-ordered list tag’ that creates a list with bullets or other images/icons that do not specify or denote an order; hence the term ‘un-ordered’. The other list tag mentioned (<ol>) is the ‘ordered list tag’ and it creates a list that, instead of with bullets, marks the list items with numbers or letters. Code examples to follow.

4. <div> and </div>: Div tags allow you to demark a portion of your page so that you can do things to it. Another way of saying ‘demark a portion’ can be ‘to put into a container’. Once a part of your web page is in this <div> container you can do all kinds of stuff like style it, animate it, make it visible or invisible, and so on. Div’s represent the next generation of formatting HTML pages that, in many ways, are superior to tables.

We will use div’s to create containers for parts of our page. One div will be used to ‘hold’ our navigational menu and another div to ‘hold’ the main page.

5. <a href> The most important tag in HTML: the ‘link tag’ or the ‘hyperlink tag’. This makes text ‘hyper’ so that when we click on it we can load another page or activate/call some JavaScript (otherwise known as ECMA script).

6. <img> This is the ‘image tag’, which allows you to link to images so that they show up in our pages. In HTML, images are not embedded into the actual page, instead the image tag (<img>) only points to where the image is and the browser will attempt to load that image when a surfer loads your HTML page.

That covers the HTML tags we will use in our layout! No need for table tags, <br> tags, and nasty (and DEPRICIATED) <font> tags.

Creating the basic page template

To work through the examples, we are going to need a practice HTML page.

To create the practice HTML page do the following:

1. Go to your desktop and create a simple text document. On Windows all you need to do is right-click and select: New -> text Document.

This will create a simple blank text document on your desktop. Name the file: practiceHTML.htm. Windows will show you a warning asking you if you want to change the file extension. Just say ‘yes’. Now right click on the file and select: ‘open with’ and select ‘Notepad’. Once inside Notepad, paste in the template code found in the grey box below:

(A simple way to cut/paste text in Windows is to press and hold the Ctrl key and ‘c’ for copy and ‘v’ for paste.)

My Practice HTML Page<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

This code forms the basic structure for all HTML pages. You can now cut and paste the code samples in between these tags:

<!--Insert code here! -->

One last note: in between the <body> </body> you find what is called a comment. Comments are a way to place notes that cannot be seen in the browser . Anything in between the following characters becomes an HTML comment:

<!-- and -->

Anything inside comments will be invisible in the browser. So in the above example the word ‘and’ would be invisible in the browser. It is a good way to leave messages about what your are doing in the page. It can come in handy later on when someone else is working on the page or even when you are, because you may (you WILL) forget why you did things a certain way.

Building the CSS

Once you have created the template page, create a folder and name it something like: ‘myCSSwebsite’ and then drop the HTML page into it. In that same folder, create a new text document and call it: ‘myCSS.css’. Once created open that file and paste in this template CSS code and then save it:

/* Generic Selectors */ 
body { 
	font-family: Georgia, "Times New Roman", Times, serif; 
	font-size: 14px; 
	color: #333333; 
	background-color: #F9F9F9; 
}
 
p { 
	width: 80%; 
} 
 
li { 
	list-style-type: none; 
	line-height: 150%; 
	list-style-image: url(../images/arrowSmall.gif); 
} 
 
h1 { 
	font-family: Georgia, "Times New Roman", Times, serif; 
	font-size: 18px; 
	font-weight: bold; 
	color: #000000; 
} 
 
h2 { 
	font-family: Georgia, "Times New Roman", Times, serif; 
	font-size: 16px; 
	font-weight: bold; 
	color: #000000; 
	border-bottom: 1px solid #C6EC8C; 
} 
 
/**************** Pseudo classes ****************/ 
a:link { 
	color: #00CC00; 
	text-decoration: underline; 
	font-weight: bold; 
} 
 
li a:link { 
	color: #00CC00; 
	text-decoration: none; 
	font-weight: bold; 
} 
 
a:visited { 
	color: #00CC00; 
	text-decoration: underline; 
	font-weight: bold; 
} 
 
li a:visited { 
	color: #00CC00; 
	text-decoration: none; 
	font-weight: bold; 
} 
 
a:hover { 
	color: rgb(0, 96, 255); 
	padding-bottom: 5px; 
	font-weight: bold; 
	text-decoration: underline; 
} 
 
li a:hover { 
	display: block; 
	color: rgb(0, 96, 255); 
	padding-bottom: 5px; 
	font-weight: bold; 
	border-bottom-width: 1px; 
	border-bottom-style: solid; 
	border-bottom-color: #C6EC8C; 
} 
 
a:active { 
	color: rgb(255, 0, 102); 
	font-weight: bold; 
} 
 
/************************* ID's *************************/ 
 
#navigation { 
	position: absolute; 
	z-index: 10; 
	width: 210px; 
	height: 600px; 
	margin: 0; 
	border-right: 1px solid #C6EC8C; 
	font-weight: normal; 
} 
#centerDoc { 
	position: absolute; 
	z-index: 15; 
	padding: 0 0 20px 20px; /*top right bottom left*/ 
	margin-top: 50px;
	margin-left: 235px;  
}

Don’t let the CSS freak you out, I will explain the important details and you will soon see how easy it really is. One last thing for you to do before I finish this part of the tutorial, we need to add some code to our HTML page.

In between the <body></body> tags you will need to insert this code:

<div id="navigation">
     <h2>The Main navigation</h2>
</div>
<div id="centerDoc">
     <h1>The Main Heading</h1>
     <p>
          Go to the Web Designer's Killer Handbook home page and grab the practice 
          HTML page that we will used as the starting template for this tutorial. 
          You can find it under the heading: 'To create the practice HTML page do the 
          following:'. Follow the instructions there and create your basic HTML page - 
          and do it now!
     </p>
</div>

And in between the <head> </head> tags you will need to insert this:

<title>First CSS Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="myCSS.css" rel="stylesheet" type="text/css" />

With this in place we will be able to start styling our page. If you take a look at the HTML page now you may be surprised to see that we already started!

If you haven’t set the page up yet, please do so to make sure you have everything working thus far. Should you have any problems, go to the KillerSites.com Forum and post your questions.