Introduction - Free HTML Tutorial: Software You Need
Introduction - Free HTML Tutorial: Software You Need
Others believe - just as mistakenly - that expensive and advanced software is needed to
make websites. It is true that there are lots of different programs that claim they can
create a website for you. Some come closer than others. But if you want it done right, you
must do it yourself. Fortunately, it is simple and free and you already have all the
software you need.
The aim of this tutorial is to give you an easy, yet thorough and correct introduction to
how to make websites. The tutorial starts from scratch and requires absolutely no
prior knowledge of programming.
The tutorial cannot show you everything. So some engagement and a will to experiment
are required. But don't worry - learning how to make websites is a lot of fun and gives a
tremendous amount of satisfaction when you get it right.
How you choose to use the tutorial is up to you. But we suggest you read only two or
three lessons a day and take time to experiment with the new things you learn in each
lesson.
What is needed?
It is not important which browser you use. The most common is Microsoft Internet
Explorer. But there are others such as Opera and Mozilla Firefox and they can all be
used.
You might have heard about, or even used, programs such as Microsoft FrontPage,
Macromedia Dreamweaver or even Microsoft Word, which can - or claim that they can -
create websites for you. Forget these programs for now! They are not of any help to you
when learning how to code your own website.
Instead, you need a simple text editor. If you are using Windows you can use Notepad,
which is usually found in the start menu under Programs in Accessories:
If you are not using Windows, you can use a similar simple text editor. For example, Pico
(Linux) or TextEdit (Mac).
Notepad is a very basic text editing program which is excellent for coding because it does
not interfere with what you are typing. It gives you complete control. The problem with
many of the programs that claim they can create websites is that they have a lot of
standard functions, which you can choose from. The downside is that, everything needs
to fit into these standard functions. Thus, this type of programs often cannot create a
website exactly as you want it. Or - even more annoyingly - they make changes to your
hand-written code. With Notepad or other simple text editors, you only have yourself to
thank for your successes and errors.
A browser and Notepad (or a similar simple text editor) are all you need to go through
this tutorial and make your own websites.
Do I need to be online?
You do not need to be connected to the Internet - neither while reading this tutorial, nor
while making your websites.
If you want to avoid being online while reading this tutorial, you can either print it out or
simply disconnect from the Internet while reading on screen. You can make the website
on your computer's hard disk and upload it to the Internet when it is finished.
What's next?
Go to the next lesson and read about HTML before the fun really starts in Lesson 3.
What is HTML?
To make a long story short, HTML was invented in 1990 by a scientist called Tim
Berners-Lee. The purpose was to make it easier for scientists at different universities to
gain access to each other's research documents. The project became a bigger success than
Tim Berners-Lee had ever imagined. By inventing HTML he laid the foundation for the
web as we know it today.
If you want to make websites, there is no way around HTML. Even if you're using a
program to create websites, such as Dreamweaver, a basic knowledge of HTML can
make life a lot simpler and your website a lot better. The good news is that HTML is easy
to learn and use. In just two lessons from now you will have learned how to make your
first website.
• Hyper is the opposite of linear. In the good old days - when a mouse was
something the cat chased - computer programs ran linearly: when the program had
executed one action it went to the next line and after that, the next line and so on.
But HTML is different - you can go wherever you want and whenever you want.
For example, it is not necessary to visit MSN.com before you visit HTML.net.
• Text is self-explanatory.
• Mark-up is what you do with the text. You are marking up the text the same way
you do in a text editing program with headings, bullets and bold text and so on.
• Language is what HTML is. It uses many English words.
In this tutorial you will learn so-called XHTML (Extensible HyperText Mark-up
Language) which, in short, is a new and more well-structured way of writing HTML.
Now you know what HTML (and XHTML) stands for let's get started with what it is all
about: making websites.
Lesson 3: Elements and tags
You are now ready to learn the essence of HTML: elements.
Elements give structure to a HTML document and tells the browser how you want your
website to be presented. Generally elements consists of a start tag, some content, and an
end tag.
"Tags"?
Tags are labels you use to mark up the begining and end of an element.
All tags have the same format: they begin with a less-than sign "<" and end with a
greater-than sign ">".
Generally speaking, there are two kinds of tags - opening tags: <html> and closing tags:
</html>. The only difference between an opening tag and a closing tag is the forward
slash "/". You label content by putting it between an opening tag and a closing tag.
HTML is all about elements. To learn HTML is to learn and use different tags.
Okay, the element em emphasis text. All text between the opening tag <em> and the
closing tag </em> is emphasised in the browser. ("em" is short for "emphasis".)
Example 1:
<em>Emphasised text.</em>
Emphasised text.
The elements h1, h2, h3, h4, h5 and h6 is used to make headings (h stands for "heading"),
where h1 is the first level and normally the largest text, h2 is the second level and
normally slightly smaller text, and h6 is the sixth and last in the hierarchy of headings
and normally the smallest text.
Example 2:
<h1>This is a heading</h1>
<h2>This is a subheading</h2>
Will look like this in the browser:
This is a heading
This is a subheading
As they say, there's an exception to every rule and in HTML the exception is that there
are a few elements which both open and close in the same tag. These so-called empty
elements are not connected to a specific passage in the text but rather are isolated labels,
for example, a line break which looks like this: <br />.
Most browsers might not care if you type your tags in upper, lower or mixed cases.
<HTML>, <html> or <HtMl> will normally give the same result. However, the correct
way is to type tags in lowercase. So get into the habit of writing your tags in lowercase.
You type your tags in an HTML document. A website contains one or more HTML
documents. When you surf the Web, you merely open different HTML documents.
If you continue to the next lesson in 10 minutes you will have made your first website.
How?
In Lesson 1 we looked at what is needed to make a website: a browser and Notepad (or
similar text editor). Since you are reading this, you most likely already have your browser
open. The only thing you need to do is to open an extra browser window (open the
browser one more time) so you can read this tutorial and see your new website at the
same time.
Also, open Notepad (in Accessories under Programs in the Start menu):
Now we are ready!
Let us start with something simple. How about a page that says: "Hurrah! This is my first
website." Read on and you'll find out how simple it is.
HTML is simple and logical. The browser reads HTML like you read English: from
the top down and from left to right. Thus, an simple HTML document begins with
what should come first and ends with what should come last.
The first thing you need to do is to tell the browser that you will "talk" to it in the
language HTML. This is done with the tag <html> (no surprises there). So before you do
anything else type "<html>" in the first line of your document in Notepad.
As you may recall from the previous lessons, <html> is an opening tag and must be
closed with a closing tag when you are finished typing HTML. So to make sure you don't
forget the HTML close tag now type "</html>" a couple of lines down and write the rest
of the document between <html> and </html>.
The next thing your document needs is a "head", which provides information about your
document, and a "body", which is the content of the document. Since HTML is nothing if
not logical, the head (<head> and </head>) is on top of the body (<body> and </body>).
<html>
<head>
</head>
<body>
</body>
</html>
Note how we structured the tags with new lines (using the Enter key) as well as indents
(using the Tab key). In principle, it does not matter how you structure your HTML
document. But to help you, and others reading your coding, to keep an overview, it is
strongly recommended that you structure your HTML in a neat way with line
breaks and indents, like the above example.
If your document looks like the above example, you have made your first website - a
particularly boring website and probably not what you dreamt of when you started this
tutorial but still some sort of a website. What you have made will be the basic template
for all your future HTML documents.
As you learnt earlier, your HTML document has two parts: a head and a body. In the
head section you write information about the page, while the body contains the
information that constitutes the page.
For example, if you want to give the page a title which will appear in the top bar of the
browser, it should be done in the "head" section. The element used for a title is title.
I.e. write the title of the page between the opening tag <title> and the closing tag
</title>:
Note that this title will not appear on the page itself. Anything you want to appear on the
page is content and must therefore be added between the "body" tags.
As promised, we want the page to say "Hurrah! This is my first website." This is the text
that we want to communicate and it therefore belongs in the body section. So in the body
section, type the following:
The p in <p> is short for "paragraph" which is exactly what it is - a text paragraph.
<html>
<head>
<title>My first website </title>
</head>
<body>
<p>Hurrah! This is my website.</p>
</body>
</html>
Next all you have to do is to save it to your hard drive and then open it in your browser:
It now should say "Hurrah! This is my first website." in your browser. Congratulations!
If you absolutely want the whole world to see your masterpiece right away, you can jump
to Lesson 13 and learn how to upload your page to the Internet. Otherwise, be patient and
read on. The fun has just begun.
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
In the head section, always write a title: <title>The title of your page</title>. Notice
how the title will be shown in the upper left corner of your browser:
The title is especially important because it is used by search engines (such as Google) to
index your website and is shown in the search results.
In the body section, you write the actual content of the page. You already know some of
the most important elements:
Remember, the only way to learn HTML is by trial and error. But don't worry, there is no
way you can destroy your computer or the Internet. So keep experimenting - that is the
best way to gain experience.
What is that supposed to mean?
Nobody becomes a good website creator by learning the examples in this tutorial. What
you get in this tutorial is simply a basic understanding of the building blocks - to become
good you must use the building blocks in new and creative ways.
So, get out in the deep water and stand on your own two feet... Okay, maybe not. But
give it a go and experiment with what you have learned.
So what's next?
Try to create a few pages yourself. For instance, make a page with a title, a heading,
some text, a subhead and some more text. It is perfectly okay to look in the tutorial while
you make your first pages. But later, see if you can do it on your own - without looking.
<html>
<head>
<title>My website</title>
</head>
<body>
<h1>A Heading</h1>
<p>text, text text, text</p>
<h2>Subhead</h2>
<p>text, text text, text</p>
</body>
</html>
Now what?
In the same way you emphasise the text by putting it between the openning tag <em> and
the closing tag </em>, you can give stronger emphasis by using the openning tag
<strong> and the closing tag </strong>.
Example 1:
<strong>Stronger emphasis.</strong>
Will look like this in the browser:
Stronger emphasis.
Example 2:
You can easily use several elements at the same time as long as you avoid overlapping
elements. This is best illustrated by an example:
Example 3:
The difference is that in the first example, we closed the tag we first opened last. This
way we avoid confusing both ourselves and the browser.
More elements!
As mentioned in Lesson 3 there are elements which are opened and closed in the
same tag. These so-called empty elements are not connected to a specific passage in the
text but rather are isolated labels. An example of such a tag is <br /> which creates a
forced line break:
Example 4:
Some text<br /> and some more text in a new line
Some text
and some more text in a new line
Notice that the tag is written as a contraction of an opening and closing tag with an empty
space and a forward slash at the end: <br />.
Another element that is opened and closed in the same tag is <hr /> which is used to
draw a horizontal line ("hr" stands for "horizontal rule"):
Example 5:
<hr />
Examples of elements that needs both an opening tag and a closing tag - as most elements
do - is ul, ol and li. These elements are used when you want to make lists.
ul is short for "unordered list" and inserts bullets for each list item. ol is short for
"ordered list" and numbers each list item. To make items in the list use the li tag ("list
item"). Confused? See the examples:
Example 7:
<ul>
<li>A list item</li>
<li>Another list item</li>
</ul>
• A list item
• Another list item
Example 8:
<ol>
<li>First list item</li>
<li>Second list item</li>
</ol>
That is all for now. Again, experiment and make your own pages using some of the seven
new elements you learned in this lesson:
<strong>Stronger emphasis</strong>
<small>Small text</small>
<br /> Line shift
<hr /> Horizontal line
<ul>List</ul>
<ol>Ordered list</ol>
<li>List item</li>
Lesson 7: Attributes
You can add attributes to a number of elements.
What is an attribute?
As you probably remember, elements give structure to a HTML document and tells the
browser how you want your website to be presented (for example, <br /> informs the
browser to make a line break). In some elements you can add more information. Such
additional information is called an attribute.
Example 1:
Attributes are always written within a start tag and are followed by an equals sign and the
attribute details written between inverted commas. The semicolon after the attribute is for
separating different style commands. We will get back to that later.
What is the catch?
There are many different attributes. The first one you will learn is style. With the style
attribute you can add layout to your website. For instance a background colour:
Example 2:
<html>
<head>
</head>
<body style="background-color:#ff0000;">
</body>
</html>
will show a completely red page in the browser - go ahead and see for yourself. We will
explain in greater detail how the colour system works in a few moments.
Note that some tags and attributes use US spelling i.e. color instead of colour. It is
important that you are careful to use the same spelling as we use in the examples in this
tutorial - otherwise, browsers will not be able to understand your codes. Also, don't forget
to always close the inverted commas (quotation marks) after an attribute.
In the above example, we asked for the background colour with the code "#ff0000". This
is the colour code for red using so called hexadecimal numbers (HEX). Each colour has
its own hexadecimal number. Here are some examples:
White: #ffffff
Black: #000000 (zeros)
Red: #ff0000
Blue: #0000ff
Green: #00ff00
Yellow: #ffff00
A hexadecimal colour code consists of # and six digits or letters. There are more than
1000 HEX codes and it is not easy to figure out which HEX code is tied to a specific
colour. To make it easier we have made a chart of the 216 most commonly used colours:
216 Web Safe Colour Chart.
You can also use the English name for the most common colours (white, black, red, blue,
green and yellow).
Example 3:
You will often use attributes in tags such as the body tag while you will rarely use
attributes in, for example, a br tag since a line break normally is a line break without any
parameters to adjust.
Just as there are many different elements, so there are many different attributes. Some
attributes are tailor made for one particular element while others can be used for many
different element. And vice versa: some elements can only contain one kind of attribute
while others can contain many.
It may sound a bit confusing but once you get acquainted with the different attributes it is
actually very logical and you will soon see how easy they are to use and how many
possibilities they provide.
Generally an elements consist of a start tag with or without one or more attributes, some
content and an end tag. Simple as that. See the illustration below.
Lesson 8: Links
In this lesson, you will learn how to make links between pages.
What do I need to make a link?
To make links, you use what you always use when coding HTML: an element. A simple
element with one attribute and you will be able to link to anything and everything.
Here is an example of what a link to HTML.net could look like:
Example 1:
<a href="http://www.html.net/">Here is a link to HTML.net</a>
The element a stands for "anchor". And the attribute href is short for "hypertext
reference", which specifies where the link leads to - typically an address on the internet
or a file name.
In the above example the attribute href has the value "http://www.html.net", which is the
full address of HTML.net and is called a URL (Uniform Resource Locator). Note that
"http://" must always be included in URLs. The sentence "Here is a link to HTML.net" is
the text that is shown in the browser as the link. Remember to close the element with an
</a>.
If you want to make a link between pages on the same website, you do not need to spell
out the entire address (URL) for the document. For example, if you have made two pages
(let us call them page1.htm and page2.htm) and saved them in the same folder you can
make a link from one page to the other by only typing the name of the file in the link.
Under such circumstances a link from page1.htm to page2.htm could look like this:
Example 2:
<a href="page2.htm">Click here to go to page 2</a>
If page 2 were placed in a subfolder (named "subfolder"), the link could look like this:
Example 3:
<a href="subfolder/page2.htm">Click here to go to page 2</a>
The other way around, a link from page 2 (in the subfolder) to page 1 would look like
this:
Example 4:
<a href="../page1.htm">A link to page 1</a>
"../" points to the folder one level up from position of the file from which the link is
made. Following the same system, you can also point two (or more) folders up by writing
"../../".
Did you understand the system? Alternatively, you can always type the complete address
for the file (URL).
You can also create internal links within a page - for example a table of contents at the
top with links to each chapter below. All you need to use is a very useful attribute called
id (identification) and the symbol "#".
Use the id attribute to mark the element to which you want to link. For example:
You can now create a link to that element by using "#" in the link attribute. The "#" must
be followed by the id of the tag you want to link to. For example:
Example 5:
<html>
<head>
</head>
<body>
</html>
will look like this in the browser (click on the two links):
Link to heading 1
Link to heading 2
Heading 1
Text text text text
Heading 2
Text text text text
Example 6:
<a href="mailto:[email protected]">Send an e-mail to nobody at
HTML.net</a>
The only difference between a link to an e-mail and a link to a file is that instead of
typing the address of a document, you type mailto: followed by an e-mail address.
When the link is clicked, the default e-mail program opens with a new blank message
addressed to the specified e-mail address. Please note that this function will only work if
there is an e-mail program installed on your computer. Give it a try!
Are there any other attributes I should know of?
To create a link, you always have to use the href attribute. In addition, you can also put a
title on your link:
Example 7:
<a href="http://www.html.net/" title="Visit HTML.net and learn
HTML">HTML.net</a>
HTML.net
The title attribute is used to type a short description of the link. If you - without clicking -
place the cursor over the link, you will see the text "Visit HTML.net and learn HTML"
appears.
Lesson 9: Images
Wouldn't it be great if you could have an image of actor and music legend David
Hasselhoff right in the centre of your page?
Maybe, but in fact it is pretty easy to do. All you need is an element:
Example 1:
All you need do is first tell the browser that you want to insert an image (img) and then
where it is located (src, short for "source"). Do you get the picture?
Notice how the img element is opened and closed using the same tag. Like the <br />
tag, it is not tied to a piece of text.
"david.jpg" is the name of the image file you want to insert in your page. ".jpg" is the file
type of the image. Just like the extension ".htm" shows that a file is an HTML document,
".jpg" tells the browser that a file is a picture. There are three different types of image file
types you can insert into your pages:
GIF images are usually best for graphics and drawings, while JPEG images are
usually better for photographs. This is for two reasons: first, GIF images only consist
of 256 colours, while JPEG images comprise of millions of colours and second, the GIF
format is better at compressing simple images, than the JPEG format which is optimized
for more complex images. The better the compression, the smaller the size of the image
file, the faster your page will load. As you probably know from your own experience,
unnecessarily 'heavy' pages can be extremely annoying for the user.
Traditionally, the GIF and JPEG formats have been the two dominant image types, but
lately, the PNG format has become more and more popular (primarily at the expense of
the GIF format). The PNG format contains in many ways the best of both the JPEG
and GIF format: millions of colours and effective compressing.
To make your own images, you need an image editing program. An image editing
program is one of the most essential tools you need to create beautiful websites.
Unfortunately, no good image editing programs comes with Windows or other operating
systems. Thus, you might consider investing in either Paint Shop Pro, PhotoShop or
Macromedia Fireworks, which are three of the best image editing programs currently on
the market.
Or you can just borrow images from other sites by downloading them. But please be
careful not to violate copyrights when downloading pictures. Still, it's useful to know
how to download pictures, so here's how you do it:
Do this with the image below and save it on your computer at the same location as your
HTML documents. (Notice that the logo is saved as a PNG file: logo.png):
Now you can insert the image into one of your own pages. Try it yourself.
There are a few more things you should know about images.
First, you can easily insert pictures located in other folders, or even pictures that are
located on other websites:
Example 2:
Example 3:
Example 4:
<a href="http://www.html.net">
<img src="logo.png" /></a>
will look like this in the browser (try clicking on the image):
You always need to use the attribute src, which tells the browser where the image is
located. Besides that, there are a number of other attributes which can be useful when
inserting images.
The alt attribute is used to give an alternate description of an image if, for some reason,
the image is not shown for the user. This is especially important for users with impaired
vision, or if the page is loaded very slowly. Therefore, always use the alt attribute:
Example 5:
Some browsers let the text of the alt attribute appear as a small pop-up box when the user
places their cursor over the picture. Please note that when using the alt attribute, the aim
is to provide an alternative description of the picture. The alt attribute should not be
used to create special pop-up messages for the user since then visually impaired users
will hear the message without knowing what the picture is.
Example 6:
If you, without clicking, place the cursor over the image, you will see the text "Learn
HTML from HTML.net" appear as a pop-up box.
Example 7:
The width and height attributes can be used to set the height and width of an image. The
value that is used to set the width and height is pixels. Pixels are the units of
measurement used to measure the resolution of screens. (The most common screen
resolution is 1024x768 pixels). Unlike centimetres, pixels are relative units of
measurement which depend on the resolution of the screen. To a user with a high screen
resolution, 25 pixels may correspond to 1 centimetre, while the same 25 pixel in a low
screen resolution may correspond to 1.5 centimetres on the screen.
If you do not set the width and height, the image will be inserted in its actual size. But
with width and height you can manipulate the size:
Example 8:
However, it is worth keeping in mind that the actual size in kilobytes of the image file
will remain the same so it will take the same time to load the image as it did before, even
though it appears smaller on the screen. Therefore, you should never decrease the
image size by using the width and height attributes. Instead, you should always resize
your images in an image editing program to make your pages lighter and faster.
That said, it is still a good idea to use the width and height attributes because the browser
will then be able to detect how much space the image will need in the final page layout
before the image is fully downloaded. This allows your browser to set up the page nicely
in a quicker way.
Is it difficult?
Building tables in HTML may at first seem complicated but if you keep cool and watch
your step, it is actually strictly logical - just like everything else in HTML.
Example 1:
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
<tr>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
</table>
Cell 1 Cell 2
Cell 3 Cell 4
As you will see from the above example, this is probably the most complicated HTML
example we have given you so far. Let's break it down and explain the different tags:
• The opening tag <table> and the closing tag </table> starts and ends the table.
Logical.
• <tr> stands for "table row" and starts and ends horizontal rows. Still logical.
• <td> is short for "table data". This tag starts and ends each cell in the rows of
your table. All simple and logical.
Here is what happens in Example 1: the table starts with a <table>, followed by a <tr>,
which indicates the beginning of a new row. Two cells are inserted in this row: <td>Cell
1</td> and <td>Cell 2</td>. The row is hereafter closed with a </tr> and a new row
<tr> begins immediately after. The new row also contains two cells. The table is closed
with </table>.
Just to make it clear: rows are horizontal lines of cells and columns are vertical lines
of cells:
Cell 1 Cell 2
Cell 3 Cell 4
Cell 1 and Cell 2 form a row. Cell 1 and Cell 3 form a column.
In the above example, the table has two rows and two columns. However, a table can
have an unlimited number of rows and columns.
Example 2:
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
<tr>
<td>Cell 5</td>
<td>Cell 6</td>
<td>Cell 7</td>
<td>Cell 8</td>
</tr>
<tr>
<td>Cell 9</td>
<td>Cell 10</td>
<td>Cell 11</td>
<td>Cell 12</td>
</tr>
</table>
Of course there are attributes. For example, the border attribute is used to specify the
thickness of the border around your table:
Example 3:
<table border="1">
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
<tr>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
</table>
Cell 1 Cell 2
Cell 3 Cell 4
The thickness of the border is specified in pixels (See lesson 9)
As with images, you can also set the width of a table in pixels - or alternatively in
percentage of the screen:
Example 4:
This example will be displayed in the browser as a table with the width of 30% of the
screen. Try it yourself.
More attributes?
There are lots of attributes for tables. Here are two more:
• align: specifies the horizontal alignment of the content in the entire table, in a row
or in a single cell. For example, left, center or right.
• valign: specifies the vertical alignment of the content in a cell. For example, top,
middle or bottom.
Example 5:
Theoretically, you can insert anything in tables: text, links and images... BUT tables are
meant for presenting tabular data (i.e. data which can be meaningfully presented in
columns and rows) so refrain from putting things into tables simply because you want
them to be placed next to each other.
In the old days on the Internet - i.e. a few years ago - tables were often used as a layout
tool. But if you want to control the presentation of texts and images there is a much
cooler way to do it (hint: CSS). But more about that later.
Now, put what you just learned to practice and design a number of tables in different
sizes, with different attributes and content. This should keep you busy for hours.
The two attributes colspan and rowspan are used when you want to create fancy tables.
Colspan is short for "column span". Colspan is used in the <td> tag to specify how
many columns the cell should span:
Example 1:
<table border="1">
<tr>
<td colspan="3">Cell 1</td>
</tr>
<tr>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
</table>
Cell 1
Cell 2 Cell 3 Cell 4
By setting colspan to "3", the cell in the first row spans three columns. If we instead had
set colspan to "2", the cell would only have spanned two columns and it would have
been necessary to insert an additional cell in the first row so that the number of columns
will fit in the two rows.
Example 2:
<table border="1">
<tr>
<td colspan="2">Cell 1</td>
<td>Cell 2</td>
</tr>
<tr>
<td>Cell 3</td>
<td>Cell 4</td>
<td>Cell 5</td>
</tr>
</table>
Will look like this in the browser:
Cell 1 Cell 2
Cell 3 Cell 4 Cell 5
As you might already have guessed, rowspan specifies how many rows a cell should
span over:
Example 3:
<table border="1">
<tr>
<td rowspan="3">Cell 1</td>
<td>Cell 2</td>
</tr>
<tr>
<td>Cell 3</td>
</tr>
<tr>
<td>Cell 4</td>
</tr>
</table>
Cell 2
Cell 1 Cell 3
Cell 4
In the example above rowspan is set to "3" in Cell 1. This specifies that the cell must
span over 3 rows (its own row plus an additional two). Cell 1 and Cell 2 are thereby in
the same row, while Cell 3 and Cell 4 form two independent rows.
Confused? Well, it is not uncomplicated and it is easy to lose track. Therefore, it might be
a good idea to draw the table on a piece of paper before you begin with the HTML.
Not confused? Then go ahead and create a couple of tables with both colspan and
rowspan on your own.
To give your website layout use Cascading Style Sheets (CSS). In this lesson you will
get a short introduction to CSS. But later you can learn all about CSS from scratch in our
CSS tutorial. So please consider this lesson only as an appetizer.
CSS is the better half of HTML. And in coding, there is no equality of status: HTML
takes care of the rough stuff (the structure), while CSS gives it a nice touch (layout).
As shown in Lesson 7, CSS can be added with the style attribute. For example, you
can set the font type and size on a paragraph:
Example 1:
One of the smart features of CSS is the possibility to manage your layout centrally.
Instead of using the style attribute in each tag, you can tell the browser once how it must
layout all the text on the page:
Example 2:
<html>
<head>
<title>My first CSS page</title>
<style type="text/css">
h1 {font-size: 30px; font-family: arial;}
h2 {font-size: 15px; font-family: courier;}
p {font-size: 8px; font-family: "times new roman";}
</style>
</head>
<body>
<h1>My first CSS page</h1>
<h2>Welcome to my first CSS page</h2>
<p>Here you can see how CSS works </p>
</body>
</html>
• Show example
In the example above CSS has been inserted in the head section and therefore applies
to the entire page. To do this, just use the tag <style type="text/css"> which tells
the browser that you are typing CSS.
In the example all headings on the page will be in Arial in size 30px. All subheads will in
Courier size 15. And all text in normal paragraphs will be in Times New Roman size 8.
Another option is to type the CSS in a separate document. With a separate CSS
document you can manage the layout of many pages all at once. Pretty smart if you
want to change the font type or size on a large website with hundreds or thousands of
pages. We won't go into that now but you can learn it later in our CSS tutorial.
CSS can be used for much more than specifying font types and sizes. For example, you
can add colours and backgrounds. Here are some examples for you to experiment with:
Try inserting the examples in some of your pages - both as shown above and also as CSS
inserted in the head section.
Is CSS nothing but colours and font types?
Besides adding layout such as colors, font types etc., CSS can also be used to control
the page setup and presentation (margins, float, alignment, width, height etc.). By
regulating the different elements with CSS you are able to layout your pages elegantly
and precisely.
Example 3:
I love CSS
With the property float an element can either be floated to the right or to the left. The
following example illustrates the principle:
Example 4:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim
veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat...
In the example, one element (the image) floats to the left and the other element (the text)
fills the hole.
With the property position, you can place an element exactly where you want it in your
page:
Example 5:
This tutorial will get you started with CSS in just a few hours. It is easy to understand and
it will teach you all the sophisticated techniques.
Learning CSS is fun. As you go along through the tutorial, remember to take enough time
to properly experiment with what you learn in each lesson.
Using CSS requires basic experience with HTML. If you are not familiar with HTML,
please start with our HTML tutorial before moving on to CSS.
Please avoid using software such as FrontPage, DreamWeaver or Word with this tutorial.
Advanced software will not help you learn CSS. Instead, it will limit you and slow down
your learning curve significantly.
For example, Microsoft Windows comes with a program called Notepad. It is usually
located in Accessories in the start menu under Programs. Alternatively, you can use a
similar text editor e.g. Pico for Linux or Simple Text for Macintosh.
A simple text editor is ideal for learning HTML and CSS because it doesn't affect or
change the codes you type. That way, your successes and errors can only be attributed to
yourself - not the software.
You can use any browser with this tutorial. We encourage you to always keep your
browser updated and use the latest version.
CSS is a style language that defines layout of HTML documents. For example, CSS
covers fonts, colours, margins, lines, height, width, background images, advanced
positions and many other things. Just wait and see!
HTML can be (mis-)used to add layout to websites. But CSS offers more options and is
more accurate and sophisticated. CSS is supported by all browsers today.
After only a few lessons of this tutorial you will be able to make your own style sheets
using CSS to give your website a new great look.
HTML is used to structure content. CSS is used for formatting structured content.
Okay, it sounds a bit technical and confusing. But please continue reading. It will all
make sense to you soon.
Back in the good old days when Madonna was a virgin and a guy called Tim Berners Lee
invented the World Wide Web, the language HTML was only used to add structure to
text. An author could mark his text by stating "this is a headline" or "this is a paragraph"
using HTML tags such as <h1> and <p>.
As the Web gained popularity, designers started looking for possibilities to add layout to
online documents. To meet this demand, the browser producers (at that time Netscape
and Microsoft) invented new HTML tags such as for example <font> which differed
from the original HTML tags by defining layout - and not structure.
This also led to a situation where original structure tags such as <table> were
increasingly being misused to layout pages instead of adding structure to text. Many new
layout tags such as <blink> were only supported by one type of browser. "You need
browser X to view this page" became a common disclaimer on web sites.
CSS was invented to remedy this situation by providing web designers with sophisticated
layout opportunities supported by all browsers. At the same time, separation of the
presentation style of documents from the content of documents, makes site maintenance a
lot easier.
CSS was a revolution in the world of web design. The concrete benefits of CSS include:
In the next lesson we take a closer look at how CSS actually works and how you get
started.
Many of the properties used in Cascading Style Sheets (CSS) are similar to those of
HTML. Thus, if you are used to use HTML for layout, you will most likely recognize
many of the codes. Let us look at a concrete example.
<body bgcolor="#FF0000">
But where do you put the CSS code? This is exactly what we will go over now.
There are three ways you can apply CSS to an HTML document. These methods are all
outlined below. We recommend that you focus on the third method i.e. external.
One way to apply CSS to HTML is by using the HTML attribute style. Building on the
above example with the red background color, it can be applied like this:
<html>
<head>
<title>Example</title>
</head>
<body style="background-color: #FF0000;">
<p>This is a red page</p>
</body>
</html>
Another way is to include the CSS codes using the HTML tag <style>. For example like
this:
<html>
<head>
<title>Example</title>
<style type="text/css">
body {background-color: #FF0000;}
</style>
</head>
<body>
<p>This is a red page</p>
</body>
</html>
The recommended method is to link to a so-called external style sheet. Throughout this
tutorial we will use this method in all our examples.
An external style sheet is simply a text file with the extension .css. Like any other file,
you can place the style sheet on your web server or hard disk.
For example, let's say that your style sheet is named style.css and is located in a folder
named style. The situation can be illustrated like this:
The trick is to create a link from the HTML document (default.htm) to the style sheet
(style.css). Such link can be created with one line of HTML code:
Notice how the path to our style sheet is indicated using the attribute href.
The line of code must be inserted in the header section of the HTML code i.e. between
the <head> and </head> tags. Like this:
<html>
<head>
<title>My document</title>
<link rel="stylesheet" type="text/css" href="style/style.css" />
</head>
<body>
...
This link tells the browser that it should use the layout from the CSS file when displaying
the HTML file.
The really smart thing is that several HTML documents can be linked to the same style
sheet. In other words, one CSS file can be used to control the layout of many HTML
documents.
This technique can save you a lot of work. If you, for example, would like to change the
background color of a website with 100 pages, a style sheet can save you from having to
manually change all 100 HTML documents. Using CSS, the change can be made in a few
seconds just by changing one code in the central style sheet.
Try it yourself
Open Notepad (or whatever text editor you use) and create two files - an HTML file and
a CSS file - with the following contents:
default.htm
<html>
<head>
<title>My document</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1>My first stylesheet</h1>
</body>
</html>
style.css
body {
background-color: #FF0000;
}
Now place the two files in the same folder. Remember to save the files with the right
extensions (respectively ".htm" and ".css")
Open default.htm with your browser and see how the page has a red background.
Congratulations! You have made your first style sheet!
Hurry on to the next lesson where we will take a look at some of the properties in CSS.
• color
• background-color
• background-image
• background-repeat
• background-attachment
• background-position
• background
For example, imagine that we want all headlines in a document to be dark red. The
headlines are all marked with the HTML element <h1>. The code below sets the color of
<h1> elements to red.
h1 {
color: #ff0000;
}
• Show example
Colors can be entered as hexadecimal values as in the example above (#ff0000), or you
can use the names of the colors ("red") or rgb-values (rgb(255,0,0)).
The element <body> contains all the content of an HTML document. Thus, to change the
background color of an entire page, the background-color property should be applied to
the <body> element.
You can also apply background colors to other elements including headlines and text. In
the example below, different background colors are applied to <body> and <h1>
elements.
body {
background-color: #FFCC66;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Show example
As an example of a background image, we use the butterfly below. You can download
the image so you can use it on your own computer (right click the image and choose
"save image as"), or you can use another image as you see fit.
To insert the image of the butterfly as a background image for a web page, simply apply
the background-image property to <body> and specify the location of the image.
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Show example
NB: Notice how we specified the location of the image as url("butterfly.gif"). This
means that the image is located in the same folder as the style sheet. You can also refer to
images in other folders using url("../images/butterfly.gif") or even on the Internet
indicating the full address of the file: url("http://www.html.net/butterfly.gif").
In the example above, did you notice that by default the butterfly was repeated both
horizontally and vertically to cover the entire screen? The property background-repeat
controls this behaviour.
The table below outlines the four different values for background-repeat.
For example, to avoid repetition of a background image the code should look like this:
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Show example
A fixed background image will not move with the text when a reader is scrolling the
page, whereas an unlocked background image will scroll along with the text of the web
page.
The table below outlines the two different values for background-attachment. Click on
the examples to see the difference between scroll and fixed.
For example, the code below will fix the background image.
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
background-attachment: fixed;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Show example
By default, a background image will be positioned in the top left corner of the screen.
The property background-position allows you to change this default and position the
background image anywhere you like on the screen.
There are numerous ways to set the values of background-position. However, all of
them are formatted as a set of coordinates. For example, the value '100px 200px'
positions the background image 100px from the left side and 200px from the top of the
browser window.
The coordinates can be indicated as percentages of the browser window, fixed units
(pixels, centimetres, etc.) or you can use the words top, bottom, center, left and right. The
model below illustrates the system:
The code example below positions the background image in the bottom right corner:
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right bottom;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Show example
Compiling [background]
The property background is a short hand for all the background properties listed in this
lesson.
With background you can compress several properties and thereby write your style sheet
in a shorter way which makes it easier to read.
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right bottom;
Using background the same result can be achieved in just one line of code:
If a property is left out, it will automatically be set to its default value. For example, if
background-attachment and background-position are taken out of the example:
These two properties that are not specified would merely be set to their default values
which as you know are scroll and top left.
Summary
In this lesson, you have already learned new techniques that would not be possible using
HTML. The fun continues in the next lesson which examines the broad range of
possibilities when using CSS to describe fonts.
Lesson 4: Fonts
In this lesson you will learn about fonts and how they are applied using CSS. We will
also look at how to work around the issue that specific fonts chosen for a website can
only be seen if the font is installed on the PC used to access the website. The following
CSS properties will be described:
• font-family
• font-style
• font-variant
• font-weight
• font-size
• font
The property font-family is used to set a prioritized list of fonts to be used to display a
given element or web page. If the first font on the list is not installed on the computer
used to access the site, the next font on the list will be tried until a suitable font is found.
There are two types of names used to categorize fonts: family-names and generic
families. The two terms are explained below.
Family-name
Examples of a family-name (often known as "font") can e.g. be "Arial", "Times
New Roman" or "Tahoma".
Generic family
Generic families can best be described as groups of family-names with uniformed
appearances. An example is sans-serif, which is a collection of fonts without
"feet".
• Show example
Headlines marked with <h1> will be displayed using the font "Arial". If this font is not
installed on the user's computer, "Verdana" will be used instead. If both these fonts are
unavailable, a font from the sans-serif family will be used to show the headlines.
Notice how the font name "Times New Roman" contains spaces and therefore is listed
using quotation marks.
The property font-style defines the chosen font either in normal, italic or oblique. In
the example below, all headlines marked with <h2> will be shown in italics.
h1 {font-family: arial, verdana, sans-serif;}
h2 {font-family: "Times New Roman", serif; font-style: italic;}
• Show example
If font-variant is set to small-caps and no small-caps font is available the browser will
most likely show the text in uppercase instead.
h1 {font-variant: small-caps;}
h2 {font-variant: normal;}
• Show example
The property font-weight describes how bold or "heavy" a font should be presented. A
font can either be normal or bold. Some browsers even support the use of numbers
between 100-900 (in hundreds) to describe the weight of a font.
• Show example
There are many different units (e.g. pixels and percentages) to choose from to describe
font sizes. In this tutorial we will focus on the most common and appropriate units.
Examples include:
h1 {font-size: 30px;}
h2 {font-size: 12pt;}
h3 {font-size: 120%;}
p {font-size: 1em;}
• Show example
There is one key difference between the four units above. The units 'px' and 'pt' make the
font size absolute, while '%' and 'em' allow the user to adjust the font size as he/she see
fit. Many users are disabled, elderly or simply suffer from poor vision or a monitor of bad
quality. To make your website accessible for everybody, you should use adjustable units
such as '%' or 'em'.
Below you can see an illustration of how to adjust the text size in Mozilla Firefox and
Internet Explorer. Try it yourself - neat feature, don't you think?
Compiling [font]
Using the font short hand property it is possible to cover all the different font properties
in one single property.
For example, imagine these four lines of code used to describe font-properties for <p>:
p {
font-style: italic;
font-weight: bold;
font-size: 30px;
font-family: arial, sans-serif;
}
p {
font: italic bold 30px arial, sans-serif;
}
Summary
You have now learned about some of the possibilities related to fonts. Remember that
one of the major advantages of using CSS to specify fonts is that at any given time, you
can change font on an entire website in just a few minutes. CSS saves time and makes
your life easier. In the next lesson we will look at text.
Lesson 5: Text
Formatting and adding style to text is a key issue for any web designer. In this lesson you
will be introduced to the amazing opportunities CSS gives you to add layout to text. The
following properties will be described:
• text-indent
• text-align
• text-decoration
• letter-spacing
• text-transform
The property text-indent allows you to add an elegant touch to text paragraphs by
applying an indent to the first line of the paragraph. In the example below a 30px is
applied to all text paragraphs marked with <p>:
p {
text-indent: 30px;
}
• Show example
Text alignment [text-align]
The CSS property text-align corresponds to the attribute align used in old versions of
HTML. Text can either be aligned to the left, to the right or centred. In addition to this,
the value justify will stretch each line so that both the right and left margins are straight.
You know this layout from for example newspapers and magazines.
In the example below the text in table headings <th> is aligned to the right while the
table data <td> are centred. In addition, normal text paragraphs are justified:
th {
text-align: right;
}
td {
text-align: center;
}
p {
text-align: justify;
}
• Show example
h1 {
text-decoration: underline;
}
h2 {
text-decoration: overline;
}
h3 {
text-decoration: line-through;
}
• Show example
Letter space [letter-spacing]
The spacing between text characters can be specified using the property letter-
spacing. The value of the property is simply the desired width. For example, if you want
a spacing of 3px between the letters in a text paragraph <p> and 6px between letters in
headlines <h1> the code below could be used.
h1 {
letter-spacing: 6px;
}
p {
letter-spacing: 3px;
}
• Show example
The text-transform property controls the capitalization of a text. You can choose to
capitalize, use uppercase or lowercase regardless of how the original text is looks in the
HTML code.
An example could be the word "headline" which can be presented to the user as
"HEADLINE" or "Headline". There are four possible values for text-transform:
capitalize
Capitalizes the first letter of each word. For example: "john doe" will be "John
Doe".
uppercase
Converts all letters to uppercase. For example: "john doe" will be "JOHN DOE".
lowercase
Converts all letters to lowercase. For example: "JOHN DOE" will be "john doe".
none
No transformations - the text is presented as it appears in the HTML code.
As an example, we will use a list of names. The names are all marked with <li> (list-
item). Let's say that we want names to be capitalized and headlines to be presented in
uppercase letters.
Try to take a look at the HTML code for this example and you will see that the text
actually is in lowercase.
h1 {
text-transform: uppercase;
}
li {
text-transform: capitalize;
}
• Show example
Summary
In the last three lessons you have already learned several CSS properties, but there is
much more to CSS. In the next lesson we will take a look at links.