HTML Basics
HTML Basics
An HTML file is a text file containing mark-up tags. The mark-up tags tell the browser
how to display the page.
HTML documents are text files made up of HTML elements.
HTML elements are defined using HTML tags.
HTML Tags
HTML tags are used to mark-up HTML elements
HTML tags are surrounded by the two characters < and >
The surrounding characters are called angle brackets
HTML tags normally come in pairs like <b> and </b>
The first tag in a pair is the start tag, the second tag is the end tag
The text between the start and end tags is the element content
HTML tags are not case sensitive, <b> means the same as <B>
The purpose of the <b> tag is to define an HTML element that should be displayed as
bold.
<body>
This is my first homepage. <b>This text is bold</b>
</body>
This HTML element starts with the start tag <body>, and ends with the end tag </body>.
The purpose of the <body> tag is to define the HTML element that contains the body of
the HTML document.
1
Recap on HTML Elements
Each HTML element has an element name (body, h1, p, br)
The start tag is the name surrounded by angle brackets: <h1>
The end tag is a slash and the name surrounded by angle brackets </h1>
The element content occurs between the start tag and the end tag
Some HTML elements have no content
Some HTML elements have no end tag . (eg br has no ending tag)
The most important tags in HTML are tags that define headings, paragraphs and line
breaks.
The best way to learn HTML is to work with examples. We have created a very nice HTML
editor for you. With this editor, you can edit the HTML source code if you like, and click on
a test button to view the result.
Headings
Headings are defined with the <h1> to <h6> tags. <h1> defines the largest
heading. <h6> defines the smallest heading.
<h1>This is a heading</h1>
<h2>This is a heading</h2>
<h3>This is a heading</h3>
<h4>This is a heading</h4>
<h5>This is a heading</h5>
<h6>This is a heading</h6>
HTML automatically adds an extra blank line before and after a heading.
2
Paragraphs
<p>This is a paragraph</p>
<p>This is another paragraph</p>
HTML automatically adds an extra blank line before and after a paragraph.
You might have noticed that paragraphs can be written without end tags </p>:
<p>This is a paragraph
<p>This is another paragraph
The example above will work in most browsers, but don't rely on it. Future version of HTML
will not allow you to skip ANY end tags.
Closing all HTML elements with an end tag is a future-proof way of writing HTML. It also
makes the code easier to understand (read and browse) when you mark both where an
element starts and where it ends.
Line Breaks
The <br> tag is used when you want to break a line, but don't want to start a new
paragraph. The <br> tag forces a line break wherever you place it.
The <br> tag is an empty tag. It has no end tag like </br>, since a closing tag doesn't
make any sense.
More and more often you will see the <br> tag written like this: <br />
3
Because the <br> tag has no end tag (or closing tag), it breaks one of the rules for future
HTML (the XML based XHTML), namely that all elements must be closed.
Writing it like <br /> is a future proof way of closing (or ending) the tag inside the opening
tag, accepted by both HTML and XML.
Comments in HTML
The comment tag is used to insert a comment in the HTML source code. A
comment will be ignored by the browser. You can use comments to explain your
code, which can help you when you edit the source code at a later date.
Note that you need an exclamation point after the opening bracket, but not before the
closing bracket.
When you write HTML text, you can never be sure how the text is displayed in another
browser. Some people have large computer displays, some have small. The text will be
reformatted every time the user resizes his window. Never try to format the text in your
editor by adding empty lines and spaces to the text.
HTML will truncate the spaces in your text. Any number of spaces count as one. Some
extra information: In HTML a new line counts as one space.
Using empty paragraphs <p> to insert blank lines is a bad habit. Use the <br> tag
instead. (But don't use the <br> tag to create lists. Wait until you have learned about
HTML lists.)
HTML automatically adds an extra blank line before and after some elements, like before
and after a paragraph, and before and after a heading.
We use a horizontal rule (the <hr> tag), to separate the sections in our tutorials.
4
Basic HTML Tags
If you lookup the basic HTML tags in the reference below, you will see that the reference
contains additional information about tag attributes.
You will learn more about HTML tag attributes in the next chapter of this tutorial.
Tag Description
<html> Defines an HTML document
<body> Defines the document's body
<h1> to <h6> Defines header 1 to header 6
<p> Defines a paragraph
<br> Inserts a single line break
<hr> Defines a horizontal rule
<!--> Defines a comment
1. HTML Attributes
HTML tags can have attributes. Attributes provide additional information to an HTML
element.
Attributes Example 1:
5
Attributes Example 2:
Attributes Example 3:
<table> defines an HTML table. (You will learn more about HTML tables later)
<table border="1"> has additional information about the border around the table .
Attributes and attribute values are case-insensitive. However, the World Wide Web
Consortium (W3C) recommends lowercase attributes/attribute values in their HTML 4
recommendation, and XHTML demands lowercase attributes/attribute values.
Attribute values should always be enclosed in quotes. Double style quotes are the most
common, but single style quotes are also allowed.
In some rare situations, like when the attribute value itself contains quotes, it is necessary
to use single quotes:
6
2. HTML Text Formatting
HTML defines a lot of elements for formatting output, like bold or italic text.
<html>
<body>
<b>This text is bold</b>
<br>
<strong>This text is strong</strong><br>
<big>This text is big</big><br>
<em>This text is emphasized</em>
<br>
<i>This text is italic</i><br>
<small>This text is small</small><br>
This text contains<sub>subscript</sub><br>
This text contains<sup>superscript</sup>
</body>
</html>
<html>
<body>
<pre>This is
preformatted text.
It preserves both spaces
and line breaks.</pre>
<pre>
for i = 1 to 10
print i
next i
</pre>
</body>
</html>
<code>Computer code</code>
<br>
<kbd>Keyboard input</kbd>
<br>
<tt>Teletype text</tt>
<br>
<samp>Sample text</samp>
<br>
<var>Computer variable</var>
<br>
<p>
<b>Note:</b> These tags are often used to display computer/programming
code.
</p>
</body>
</html>
Example 4 Address
<html>
<body>
<address>
Donald Duck<br>
BOX 555<br>
Disneyland<br>
USA
</address>
</body>
</html>
9
Example 5. Abbreviations and acronyms
<html>
<body>
<p>The title attribute is used to show the spelled-out version when holding the
mouse pointer over the acronym or abbreviation.</p>
<p>This works for both the abbr and acronym element in Netscape 6.2.</p>
</body>
</html>
html>
<body>
<p>
If your browser supports bi-directional override (bdo), the next line will be written from the
right to the left (rtl):
</p>
<bdo dir="rtl">
Here is some Hebrew text
</bdo>
</body>
</html>
10
Example 7. Quotations
<html>
<body>
Here comes a long quotation:
<blockquote>
This is a long quotation. This is a long quotation. This is a long quotation. This is a long
quotation. This is a long quotation.
</blockquote>
Here comes a short quotation:
<q>
This is a short quotation
</q>
<p>
With the block quote element, the browser inserts line breaks and margins, but the q
element does not render as anything special.
</p>
</body>
</html>
<html>
<body>
<p>
a dozen is
<del>twenty</del>
<ins>twelve</ins>
pieces
</p>
<p>
Most browsers will overstrike deleted text and underline inserted text.
</p>
<p>
Some older browsers will display deleted or inserted text as plain text.
</p>
</body>
</html>
11
Some characters have a special meaning in HTML, like the less than sign (<) that defines
the start of an HTML tag. If we want the browser to actually display these characters we
must insert character entities in the HTML source.
A character entity has three parts: an ampersand (&), an entity name or a # and an entity
number, and finally a semicolon (;).
To display a less than sign in an HTML document we must write: < or <
The advantage of using a name instead of a number is that a name is easier to remember.
The disadvantage is that not all browsers support the newest entity names, while the
support for entity numbers is very good in almost all browsers.
This example lets you experiment with character entities: Character Entities
Non-breaking Space
Normally HTML will truncate spaces in your text. If you write 10 spaces in your text HTML
will remove 9 of them. To add spaces to your text, use the character entity.
12
Result Description Entity Name Entity Number
¢ cent ¢ ¢
£ pound £ £
¥ yen ¥ ¥
€ euro € €
§ section § §
© copyright © ©
® registered trademark ® ®
× multiplication × ×
÷ division ÷ ÷
4. HTML Links
HTML uses the <a> (anchor) tag to create a link to another document.
An anchor can point to any resource on the Web: an HTML page, an image, a sound file, a
movie, etc.
The <a> tag is used to create an anchor to link from, the href attribute is used to address
the document to link to, and the words between the open and close of the anchor tag will
be displayed as a hyperlink.
13
The Target Attribute
With the target attribute, you can define where the linked document will be opened.
The line below will open the document in a new browser window:
<a href="[Link]
target="_blank">Visit W3Schools!</a>
The name attribute is used to create a named anchor. When using named anchors we can
create links that can jump directly into a specific section on a page, instead of letting the
user scroll around to find what he/she is looking for.
The name attribute is used to create a named anchor. The name of the anchor can be any
text you care to use.
You should notice that a named anchor is not displayed in a special way.
To link directly to the "tips" section, add a # sign and the name of the anchor to
the end of a URL, like this:
<a href="[Link]
Jump to the Useful Tips Section</a>
A hyperlink to the Useful Tips Section from WITHIN the file "html_links.asp" will
look like this:
14
Always add a trailing slash to subfolder references. If you link like this:
href="[Link] you will generate two HTTP requests to the
server, because the server will add a slash to the address and create a new request like
this: href="[Link]
Named anchors are often used to create "table of contents" at the beginning of a large
document. Each chapter within the document is given a named anchor, and links to each
of these anchors are put at the top of the document.
If a browser cannot find a named anchor that has been specified, it goes to the top of the
document. No error
occurs.
More Examples
html>
<body>
<a href="[Link]" target="_blank">Last Page</a>
<p>
If you set the target attribute of a link to "_blank",
the link will open in a new window.
</p>
</body>
</html>
<html>
<body>
<p>
<a href="#C4">See also Chapter 4.</a>
</p>
<h2>Chapter 1</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 2</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 3</h2>
<p>This chapter explains ba bla bla</p>
<h2><a name="C4">Chapter 4</a></h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 5</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 6</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 7</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 8</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 9</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 10</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 11</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 12</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 13</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 14</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 15</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 16</h2>
<p>This chapter explains ba bla bla</p>
<h2>Chapter 17</h2>
<p>This chapter explains ba bla bla</p>
</body>
</html>
16
Break out of a frame
This example demonstrates how to break out of a frame, if your site is locked in a frame.
<html>
<body>
<p>Locked in a frame?</p>
<a href="[Link]
target="_top">Click here!</a>
</body>
</html>
<html>
<body>
<p>
This is a mail link:
<a href="[Link]
Send Mail</a>
</p>
<p>
<b>Note:</b> Spaces between words should be replaced by %20 to <b>ensure</b>
that the browser will display your text properly.
</p>
</body>
</html>
17
Create a mailto link 2
<html>
<body>
<p>
This is another mailto link:
<a href="[Link]
cc=someoneelse@[Link]&bcc=andsomeoneelse2@[Link]&subject=Summ
er%20Party&body=You%20are%20invited%20to%20a%20big%20summer
%20party!">Send mail!</a>
</p>
<p>
<b>Note:</b> Spaces between words should be replaced by %20 to <b>ensure</b>
that the browser will display your text properly.
</p>
</body>
</html>
5. HTML Frames
With frames, you can display more than one Web page in the same browser
window.
Frames
With frames, you can display more than one HTML document in the same browser window.
Each HTML document is called a frame, and each frame is independent of the others.
18
The Frameset Tag
The <frameset> tag defines how to divide the window into frames
Each frameset defines a set of rows or columns
The values of the rows/columns indicate the amount of screen area each
row/column will occupy
In the example below we have a frameset with two columns. The first column is set
to 25% of the width of the browser window. The second column is set to 75% of
the width of the browser window. The HTML document "frame_a.htm" is put into
the first column, and the HTML document "frame_b.htm" is put into the second
column:
<frameset cols="25%,75%">
<frame src="frame_a.htm">
<frame src="frame_b.htm">
</frameset>
Note: The frameset column size value can also be set in pixels (cols="200,500"), and one
of the columns can be set to use the remaining space (cols="25%,*").
If a frame has visible borders, the user can resize it by dragging the border. To prevent a
user from doing this, you can add noresize="noresize" to the <frame> tag.
Add the <noframes> tag for browsers that do not support frames.
Important: You cannot use the <body></body> tags together with the
<frameset></frameset> tags! However, if you add a <noframes> tag containing some
text for browsers that do not support frames, you will have to enclose the text in
<body></body> tags! See how it is done in the first example below.
19
More Examples
<html>
<frameset cols="25%,50%,25%">
<frame src="frame_a.htm">
<frame src="frame_b.htm">
<frame src="frame_c.htm">
<noframes>
<body>Your browser does not handle frames!</body>
</noframes>
</frameset>
</html>
Mixed frameset
This example demonstrates how to make a frameset with three documents, and how to
mix them in rows and columns.
<html>
<frameset rows="50%,50%">
<frame src="frame_a.htm">
<frameset cols="25%,75%">
<frame src="frame_b.htm">
<frame src="frame_c.htm">
</frameset>
</frameset>
</html>
20
Frameset with noresize="noresize"
This example demonstrates the noresize attribute. The frames are not resizable. Move the
mouse over the borders between the frames and notice that you can not move the
borders.
<html>
<frameset rows="50%,50%">
<frame noresize="noresize" src="frame_a.htm">
<frameset cols="25%,75%">
<frame noresize="noresize" src="frame_b.htm">
<frame noresize="noresize" src="frame_c.htm">
</frameset>
</frameset>
</html>
Navigation frame
This example demonstrates how to make a navigation frame. The navigation frame
contains a list of links with the second frame as the target. The file called
"tryhtml_contents.htm" contains three links. The source code of the links:
<a href ="frame_a.htm" target ="showframe">Frame a</a><br>
<a href ="frame_b.htm" target ="showframe">Frame b</a><br>
<a href ="frame_c.htm" target ="showframe">Frame c</a>
The second frame will show the linked document.
<html>
<frameset cols="120,*">
<frame src="tryhtml_contents.htm">
<frame src="frame_a.htm"
name="showframe">
</frameset>
</html>
21
Inline frame
This example demonstrates how to create an inline frame (a frame inside an HTML page).
<html>
<body>
<iframe src="[Link]"></iframe>
<p>Some older browsers don't support iframes.</p>
<p>If they don't, the iframe will not be visible.</p>
</body>
</html>
<html>
<frameset cols="20%,80%">
<frame src="frame_a.htm">
<frame src="[Link]#C10">
</frameset>
</html>
<html>
<frameset cols="180,*">
<frame src="[Link]">
<frame src="[Link]" name="showframe">
</frameset>
</html>
22
Frame Tags
Tag Description
<frameset> Defines a set of frames
<frame> Defines a sub window (a frame)
<noframes> Defines a noframe section for browsers that do not handle frames
<iframe> Defines an inline sub window (frame)
6. HTML Tables
Tables
Tables are defined with the <table> tag. A table is divided into rows (with the <tr>
tag), and each row is divided into data cells (with the <td> tag). The letters td
stands for "table data," which is the content of a data cell. A data cell can contain
text, images, lists, paragraphs, forms, horizontal rules, tables, etc.
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
23
Tables and the Border Attribute
If you do not specify a border attribute the table will be displayed without any
borders. Sometimes this can be useful, but most of the time, you want the borders
to show. To display a table with borders, you will have to use the border attribute:
<table border="1">
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
Headings in a Table
<table border="1">
<tr>
<th>Heading</th>
<th>Another Heading</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
24
How it looks in a browser:
Another
Heading
Heading
Table cells with no content are not displayed very well in most browsers.
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td></td>
</tr>
</table>
row 2, cell 1
Note that the borders around the empty table cell are missing (NB! Mozilla Firefox displays
the border).
25
To avoid this, add a non-breaking space ( ) to empty data cells, to make the
borders visible:
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td> </td>
</tr>
</table>
row 2, cell 1
The <thead>,<tbody> and <tfoot> elements are seldom used, because of bad browser
support. Expect this to change in future versions of XHTML. If you have Internet Explorer
5.0 or newer, you can view a working example in our XML tutorial.
26
More Examples:
<html>
<body>
</body>
</html>
27
Ex2. A table demonstrating table headers
<html>
<body>
<h4>Table headers:</h4>
<table border="1">
<tr>
<th>Name</th>
<th>Telephone</th>
<th>Telephone</th>
</tr>
<tr>
<td>Bill Gates</td>
<td>555 77 854</td>
<td>555 77 855</td>
</tr>
</table>
<h4>Vertical headers:</h4>
<table border="1">
<tr>
<th>First Name:</th>
<td>Bill Gates</td>
</tr>
<tr>
<th>Telephone:</th>
<td>555 77 854</td>
</tr>
<tr>
<th>Telephone:</th>
<td>555 77 855</td>
</tr>
</table>
</body>
</html>
28
Ex3. A table with empty cells
This example demonstrates how to use " " to handle cells that have no content .
<html>
<body>
<table border="1">
<tr>
<td>Some text</td>
<td>Some text</td>
</tr>
<tr>
<td></td>
<td>Some text</td>
</tr>
</table>
<p>
As you can see, one of the cells has no border. That is because it is empty. Try to insert a
space in the cell. Still it has no border.
</p>
<p>
The trick is to insert a no-breaking space in the cell.
</p>
<p>No-breaking space is a character entity. If you don't know what a character entity is,
read the chapter about it.
</p>
<p>
</p>
</body>
</html>
29
Ex4. A table with a caption
<html>
<body>
<h4>
This table has a caption,
and a thick border:
</h4>
<table border="6">
<caption>My Caption</caption>
<tr>
<td>100</td>
<td>200</td>
<td>300</td>
</tr>
<tr>
<td>400</td>
<td>500</td>
<td>600</td>
</tr>
</table>
</body>
</html>
30
Ex 5 Spanning rows and columns
<html>
<body>
</body>
</html>
31
Eg.6 Tags Inside a Table
<html>
<body>
<table border="1">
<tr>
<td>
<p>This is a paragraph</p>
<p>This is another paragraph</p>
</td>
<td>This cell contains a table:
<table border="1">
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td>D</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>This cell contains a list
<ul>
<li>apples</li>
<li>bananas</li>
<li>pineapples</li>
</ul>
</td>
<td>HELLO</td>
</tr>
</table>
</body>
</html>
32
Eg. 7 Table with cell padding
This example demonstrates how to use cellpadding to create more white space between
the cell content and its borders.
<html>
<body>
<h4>Without cellpadding:</h4>
<table border="1">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With cellpadding:</h4>
<table border="1"
cellpadding="10">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
</body>
</html>
33
Eg.8 Cell spacing
This example demonstrates how to use cellspacing to increase the distance between the
cells.
<html>
<body>
<h4>Without cellspacing:</h4>
<table border="1">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With cellspacing:</h4>
<table border="1"
cellspacing="10">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
</body>
</html>
34
Eg.9 Table with background color/image to a table
<html>
<body>
</body>
</html>
35
Eg. 10 Adding a background color/image to a cell
<html>
<body>
<h4>Cell backgrounds:</h4>
<table border="1">
<tr>
<td bgcolor="red">First</td>
<td>Row</td>
</tr>
<tr>
<td
background="[Link]">
Second</td>
<td>Row</td>
</tr>
</table>
</body>
</html>
36
Eg. 11 Aligning in a table cell
This example demonstrates how to use the "align" attribute to align the content of cells, to
create a "nice-looking" table.
<html>
<body>
</body>
</html>
37
This example demonstrates how to use the "frame" attribute to control the borders around
the table.
<html>
<body>
<p>
If you see no frames around the tables in these examples, your browser is too old, or does
not support it.
</p>
<h4>With frame="border":</h4>
<table frame="border">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="box":</h4>
<table frame="box">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="void":</h4>
<table frame="void">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
38
<h4>With frame="above":</h4>
<table frame="above">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="below":</h4>
<table frame="below">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="hsides":</h4>
<table frame="hsides">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="vsides":</h4>
<table frame="vsides">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="lhs":</h4>
<table frame="lhs">
<tr>
39
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
<h4>With frame="rhs":</h4>
<table frame="rhs">
<tr>
<td>First</td>
<td>Row</td>
</tr>
<tr>
<td>Second</td>
<td>Row</td>
</tr>
</table>
</body>
</html>
How to use the "frame" and "border" attributes to control the borders around the table.
40
<html>
<body>
<p>
If you see no frames around the tables in these examples, your browser does not support
the frame attribute.
</p>
</body>
</html>
Table Tags
Tag Description
<table> Defines a table
<th> Defines a table header
<tr> Defines a table row
<td> Defines a table cell
<caption> Defines a table caption
<colgroup> Defines groups of table columns
<col> Defines the attribute values for one or more columns in a table
<thead> Defines a table head
<tbody> Defines a table body
<tfoot> Defines a table footer
7. HTML Lists
41
Unordered Lists
An unordered list is a list of items. The list items are marked with bullets (typically small
black circles).
An unordered list starts with the <ul> tag. Each list item starts with the <li> tag.
<ul>
<li>Coffee</li>
<li>Milk</li>
</ul>
Coffee
Milk
Inside a list item you can put paragraphs, line breaks, images, links, other lists, etc.
Ordered Lists
An ordered list is also a list of items. The list items are marked with numbers.
An ordered list starts with the <ol> tag. Each list item starts with the <li> tag.
<ol>
<li>Coffee</li>
<li>Milk</li>
</ol>
1. Coffee
2. Milk
Inside a list item you can put paragraphs, line breaks, images, links, other lists, etc.
Definition Lists
A definition list is not a list of items. This is a list of terms and explanation of the terms.
A definition list starts with the <dl> tag. Each definition-list term starts with the
<dt> tag. Each definition-list definition starts with the <dd> tag.
42
<dl>
<dt>Coffee</dt>
<dd>Black hot drink</dd>
<dt>Milk</dt>
<dd>White cold drink</dd>
</dl>
Coffee
Black hot drink
Milk
White cold drink
Inside a definition-list definition (the <dd> tag) you can put paragraphs, line breaks,
images, links, other lists, etc.
More Examples
<html>
<body>
<h4>Numbered list:</h4>
<ol>
<li>Apples</li>
<li>Bananas</li>
<li>Lemons</li>
<li>Oranges</li>
</ol>
<h4>Letters list:</h4>
<ol type="A">
<li>Apples</li>
<li>Bananas</li>
<li>Lemons</li>
<li>Oranges</li>
</ol>
</body>
</html>
<html>
44
<body>
<h4>Disc bullets list:</h4>
<ul type="disc">
<li>Apples</li>
<li>Bananas</li>
<li>Lemons</li>
<li>Oranges</li>
</ul>
</body>
</html>
Nested list
<html>
45
<body>
<h4>A nested List:</h4>
<ul>
<li>Coffee</li>
<li>Tea
<ul>
<li>Black tea</li>
<li>Green tea</li>
</ul>
</li>
<li>Milk</li>
</ul>
</body>
</html>
Nested list 2
<html>
<body>
<h4>A nested List:</h4>
<ul>
<li>Coffee</li>
<li>Tea
<ul>
<li>Black tea</li>
<li>Green tea
<ul>
<li>China</li>
<li>Africa</li>
</ul>
</li>
</ul>
</li>
<li>Milk</li>
</ul>
</body>
</html>
Definition list
46
<html>
<body>
</body>
</html>
List Tags
Tag Description
<ol> Defines an ordered list
<ul> Defines an unordered list
<li> Defines a list item
<dl> Defines a definition list
<dt> Defines a definition term
<dd> Defines a definition description
<dir> Deprecated. Use <ul> instead
<menu> Deprecated. Use <ul> instead
47
Examples
Text fields
This example demonstrates how to create text fields on an HTML page. A user can write
text in a text field.
<html>
<body>
<form action="">
First name:
<input type="text" name="firstname">
<br>
Last name:
<input type="text" name="lastname">
</form>
</body>
</html>
Password fields
This example demonstrates how to create a password field on an HTML page.
<html>
48
<body>
<form action="">
Username:
<input type="text" name="user">
<br>
Password:
<input type="password" name="password">
</form>
<p>
Note that when you type characters in a password field, the browser displays asterisks or
bullets instead of the characters.
</p>
</body>
</html>
Forms
Form elements are elements that allow the user to enter information (like text fields,
textarea fields, drop-down menus, radio buttons, checkboxes, etc.) in a form.
<form>
<input>
49
<input>
</form>
Input
The most used form tag is the <input> tag. The type of input is specified with the type
attribute. The most commonly used input types are explained below.
Text Fields
Text fields are used when you want the user to type letters, numbers, etc. in a form.
<form>
First name:
<input type="text" name="firstname">
<br>
Last name:
<input type="text" name="lastname">
</form>
First name:
Last name:
Note that the form itself is not visible. Also note that in most browsers, the width of the
text field is 20 characters by default.
50
Radio Buttons
Radio Buttons are used when you want the user to select one of a limited number of
choices.
<form>
<input type="radio" name="sex" value="male"> Male
<br>
<input type="radio" name="sex" value="female"> Female
</form>
Male
Female
Checkboxes
Checkboxes are used when you want the user to select one or more options of a limited
number of choices.
51
<form>
I have a bike:
<input type="checkbox" name="vehicle" value="Bike">
<br>
I have a car:
<input type="checkbox" name="vehicle" value="Car">
<br>
I have an airplane:
<input type="checkbox" name="vehicle" value="Airplane">
</form>
I have a bike:
I have a car:
I have an airplane:
When the user clicks on the "Submit" button, the content of the form is sent to another
file. The form's action attribute defines the name of the file to send the content to. The file
defined in the action attribute usually does something with the received input.
52
<form name="input" action="html_form_action.asp"
method="get">
Username:
<input type="text" name="user">
<input type="submit" value="Submit">
</form>
Username:
If you type some characters in the text field above, and click the "Submit" button, you will
send your input to a page called "html_form_action.asp". That page will show you the
received input.
More Examples
Checkboxes
This example demonstrates how to create check-boxes on an HTML page. A user can
select or unselect a checkbox.
<html>
53
<body>
<form action="">
I have a bike:
<input type="checkbox" name="vehicle" value="Bike">
<br />
I have a car:
<input type="checkbox" name="vehicle" value="Car">
<br />
I have an airplane:
<input type="checkbox" name="vehicle" value="Airplane">
</form>
</body>
</html>
Radio buttons
This example demonstrates how to create radio-buttons on an HTML page.
<html>
<body>
<form action="">
Male:
<input type="radio" checked="checked"
name="Sex" value="male">
<br>
Female:
<input type="radio"
name="Sex" value="female">
</form>
<p>
When a user clicks on a radio-button, the button becomes checked, and all other buttons with the
same name become unchecked
</p>
</body>
</html>
54
Simple drop down box
This example demonstrates how to create a simple drop-down box on an HTML page. A
drop-down box is a selectable list.
<html>
<body>
<form action="">
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</form>
</body>
</html>
Another drop down box
This example demonstrates how to create a simple drop-down box with a pre-selected
value.
<html>
<body>
<form action="">
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat" selected="selected">Fiat</option>
<option value="audi">Audi</option>
</select>
</form>
</body>
</html>
Textarea
This example demonstrates how to create a text-area (a multi-line text input control). A
55
user can write text in the text-area. In a text-area you can write an unlimited number of
characters.
<html>
<body>
<p>
This example cannot be edited
because our editor uses a textarea
for input,
and your browser does not allow
a textarea inside a textarea.
</p>
<textarea rows=”10” cols=”30”
The cat was playing in the garden.
</textarea>
</body>
</html>
Create a button
This example demonstrates how to create a button. On the button you can define your
own text.
<html>
<body>
<form action="">
<input type="button" value="Hello world!">
</form>
</body>
</html>
56
Fieldset around data
This example demonstrates how to draw a border with a caption around your data.
<html>
<body>
<fieldset>
<legend>
Health information:
</legend>
<form action="">
Height <input type="text" size="3">
Weight <input type="text" size="3">
</form>
</fieldset>
<p>
If there is no border around the input form, your browser is too old.
</p>
</body>
</html>
57
Form Examples
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
Type your first name:
<input type="text" name="FirstName" value="Mickey" size="20">
<br>Type your last name:
<input type="text" name="LastName" value="Mouse" size="20">
<br>
<input type="submit" value="Submit">
</form>
<p>
If you click the "Submit" button, you will send your input to a new page called
html_form_action.asp.
</p>
</body>
</html>
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
I have a bike:
<input type="checkbox" name="vehicle" value="Bike" checked="checked" />
<br />
I have a car:
<input type="checkbox" name="vehicle" value="Car" />
<br />
58
I have an airplane:
<input type="checkbox" name="vehicle" value="Airplane" />
<br /><br />
<input type="submit" value="Submit" />
</form>
<p>
If you click the "Submit" button, you send your input to a new page called
html_form_action.asp.
</p>
</body>
</html>
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
Male:
<input type="radio" name="Sex" value="Male" checked="checked">
<br>
Female:
<input type="radio" name="Sex" value="Female">
<br>
<input type ="submit" value ="Submit">
</form>
<p>
If you click the "Submit" button, you will send your input to a new page called
html_form_action.asp.
</p>
</body>
</html>
59
Send e-mail from a form
This example demonstrates how to send e-mail from a form.
<html>
<body>
<form action="MAILTO:someone@[Link]" method="post" enctype="text/plain">
<h3>This form sends an e-mail to W3Schools.</h3>
Name:<br>
<input type="text" name="name"
value="yourname" size="20">
<br>
Mail:<br>
<input type="text" name="mail"
value="yourmail" size="20">
<br>
Comment:<br>
<input type="text" name="comment"
value="yourcomment" size="40">
<br><br>
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>
</body>
</html>
60
Form Tags
Tag Description
<form> Defines a form for user input
<input> Defines an input field
<textarea> Defines a text-area (a multi-line text input control)
<label> Defines a label to a control
<fieldset> Defines a fieldset
<legend> Defines a caption for a fieldset
<select> Defines a selectable list (a drop-down box)
<optgroup> Defines an option group
<option> Defines an option in the drop-down box
<button> Defines a push button
<isindex> Deprecated. Use <input> instead
9. HTML Images
61
With HTML you can display images in a document.
Examples
Insert images
<html>
<body>
<p>
An image:
<img src="[Link]"
width="144" height="50">
</p>
<p>
A moving image:
<img src="[Link]"
width="48" height="48">
</p>
<p>
Note that the syntax of inserting a moving image is no different from that of a non-moving
image.
</p>
</body>
</html>
62
Insert images from different locations
This example demonstrates how to display images from another folder or another server
in your Web page.
<html>
<body>
<p>
An image from another folder:
<img src="/images/[Link]"
width="33" height="32">
</p>
<p>
An image from W3Schools:
<img src="[Link]
</p>
</body>
</html>
The <img> tag is empty, which means that it contains attributes only and it has no closing
tag.
To display an image on a page, you need to use the src attribute. Src stands for "source".
The value of the src attribute is the URL of the image you want to display on your page.
<img src="url">
The URL points to the location where the image is stored. An image named "[Link]"
located in the directory "images" on "[Link]" has the URL:
[Link]
The browser puts the image where the image tag occurs in the document. If you put an
image tag between two paragraphs, the browser shows the first paragraph, then the
image, and then the second paragraph.
63
The Alt Attribute
The alt attribute is used to define an "alternate text" for an image. The value of the
alt attribute is an author-defined text:
The "alt" attribute tells the reader what he or she is missing on a page if the browser can't
load images. The browser will then display the alternate text instead of the image. It is a
good practice to include the "alt" attribute for each image on a page, to improve the
display and usefulness of your document for people who have text-only browsers.
If an HTML file contains ten images - eleven files are required to display the page right.
Loading images take time, so my best advice is: Use images carefully.
More Examples
Background image
This example demonstrates how to add a background image to an HTML page.
<html>
<body background="[Link]">
<h3>Look: A background image!</h3>
<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
64
Aligning images
This example demonstrates how to align an image within the text.
<html>
<body>
<p>
An image
<img src="[Link]"
align="bottom" width="48" height="48">
in the text
</p>
<p>
An image
<img src ="[Link]"
align="middle" width="48" height="48">
in the text
</p>
<p>
An image
<img src ="[Link]"
align="top" width="48" height="48">
in the text
</p>
<p>Note that bottom alignment is the default alignment</p>
<p>
An image
<img src ="[Link]"
width="48" height="48">
in the text
</p>
<p>
65
<img src ="[Link]"
width="48" height="48">
An image before the text
</p>
<p>
An image after the text
<img src ="[Link]"
width="48" height="48">
</p>
</body>
</html>
<html>
<body>
<p>
<img src ="[Link]"
align ="left" width="48" height="48">
A paragraph with an image. The align attribute of the image is set to "left". The image will
float to the left of this text.
</p>
<p>
<img src ="[Link]"
align ="right" width="48" height="48">
A paragraph with an image. The align attribute of the image is set to "right". The image
will float to the right of this text.
</p>
</body>
</html>
66
Adjust images to different sizes
This example demonstrates how to adjust images to different sizes.
<html>
<body>
<p>
<img src="[Link]"
width="20" height="20">
</p>
<p>
<img src="[Link]"
width="45" height="45">
</p>
<p>
<img src="[Link]"
width="70" height="70">
</p>
<p>
You can make a picture larger or smaller changing the values in the "height" and "width"
attributes of the
img tag.
</p>
</body>
</html>
67
This example demonstrates how to display an alternate text for an image. The "alt"
attribute tells the reader what he or she is missing on a page if the browser can't load
images. It is a good practice to include the "alt" attribute for each image on a page.
<html>
<body>
<img src="[Link]" alt="Go Left" width="32" height="32">
<p>
Text-only browsers cannot display images and will only display the text that is specified in
the "alt" attribute for the image. Here, the "alt"-text is "Go Left".</p>
<p>
Note that if you hold the mouse pointer over the image, most browsers will display the
"alt"-text.
</p>
</body>
</html>
<html>
<body>
<p>
You can also use an image as a link:
<a href="[Link]">
<img border="0" src="[Link]" width="65" height="38">
</a>
</p>
</body>
</html>
68
Create an image map
This example demonstrates how to create an image map, with clickable regions. Each of
the regions is a hyperlink.
<html>
<body>
<p>
Click on one of the planets to watch it closer:
</p>
<img src="[Link]"
width="145" height="126"
usemap="#planetmap">
<map id="planetmap" name="planetmap">
<area shape="rect"
coords="0,0,82,126"
alt="Sun"
href="[Link]">
<area shape="circle"
coords="90,58,3"
alt="Mercury"
href="[Link]">
<area shape="circle"
coords="124,58,8"
alt="Venus"
href="[Link]">
</map>
<p><b>Note:</b> The "usemap" attribute in the img element refers to the "id" or
"name" (browser dependant) attribute in
the map element, therefore we have added both the "id" and "name" attributes to the
map element.</p>
</body>
</html>
<html>
<body>
<p>
Move the mouse over the image, and look at the status bar to see how the
coordinates change.
</p>
<p>
<a href="tryhtml_ismap.htm">
<img src="[Link]"
ismap width="146" height="126">
</a>
</p>
</body>
</html>
Image Tags
Tag Description
<img> Defines an image
<map> Defines an image map
<area> Defines a clickable area inside an image map
<html>
<body bgcolor="#d0d0d0">
<p>
This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a
paragraph.
</p>
<p>
This is another paragraph. This is another paragraph. This is another paragraph. This is
another paragraph.
</p>
</body>
</html>
71
Bad background and text color
An example of a background color and a text color that makes the text on the page
difficult to read.
<html>
<body bgcolor="#ffffff" text="yellow">
<p>
This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a
paragraph.
</p>
<p>
This is another paragraph. This is another paragraph. This is another paragraph. This is
another paragraph.
</p>
</body>
</html>
Backgrounds
The <body> tag has two attributes where you can specify backgrounds. The background
can be a color or an image.
Bgcolor
The bgcolor attribute specifies a background-color for an HTML page. The value of this
attribute can be a hexadecimal number, an RGB value, or a color name:
<body bgcolor="#000000">
<body bgcolor="rgb(0,0,0)">
<body bgcolor="black">
72
Background
The background attribute specifies a background-image for an HTML page. The value of
this attribute is the URL of the image you want to use. If the image is smaller than the
browser window, the image will repeat itself until it fills the entire browser window.
<body background="[Link]">
<body background="[Link]
The URL can be relative (as in the first line above) or absolute (as in the second line
above).
Note: If you want to use a background image, you should keep in mind:
Will the background image increase the loading time too much?
Will the background image look good with other images on the page?
Will the background image look good with the text colors on the page?
Will the background image look good when it is repeated on the page?
Will the background image take away the focus from the text?
The bgcolor, background, and the text attributes in the <body> tag are deprecated in the
latest versions of HTML (HTML 4 and XHTML). The World Wide Web Consortium (W3C) has
removed these attributes from its recommendations.
Style sheets (CSS) should be used instead (to define the layout and display properties of
HTML elements).
73
More Examples
<html>
<body background="[Link]">
<h3>Image Background</h3>
<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
<html>
<body background="[Link]">
<h3>Image Background</h3>
<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
74
Bad background image
An example of a background image and a text color that makes the text on the page very
difficult to read.
<html>
<body background="[Link]">
<h3>Image Background</h3>
<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
Computer Joke
Color Values
HTML colors can be defined as a hexadecimal notation for the combination of Red, Green,
and Blue color values (RGB).
The lowest value that can be given to one light source is 0 (hex #00) and the highest
value is 255 (hex #FF).
The table below shows the result of combining Red, Green, and Blue light sources:.
W3C has listed 16 color names that will validate with an HTML validator.
The color names are: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive,
purple, red, silver, teal, white, and yellow.
Some years ago, when most computers only supported 256 different colors, a list of 216
Web Safe Colors was suggested as a Web standard. The reason for this was that the
Microsoft and Mac operating system used 40 different "reserved" fixed system colors
(about 20 each).
We are not sure how important this is now, since most computers today have the ability to
display millions of different colors, but the choice is left to you.
The 216 cross-browser color palette was created to ensure that all computers would
display the colors correctly when running a 256 color palette:
78
12. HTML Colour values
Colors are displayed combining RED, GREEN, and BLUE light sources.
Color Values
HTML colors are defined using a hexadecimal notation for the combination of Red, Green,
and Blue color values (RGB). The lowest value that can be given to one of the light sources
is 0 (hex #00). The highest value is 255 (hex #FF).
If you turn off the Red light completely, there are 65536 different combination of Green
and Blue (256 x 256) to experiment with.
By setting the Red parameter to its maximum value, there are still 65536 different
combination of Green and Blue (256 x 256) to experiment with.
The combination of Red, Green and Blue values from 0 to 255 gives a total of more than
16 million different colors to play with (256 x 256 x 256).
Most modern monitors are capable of displaying at least 16384 different colors.
If you look at the color table below, you will see the result of varying the red light from 0 to
255, while keeping the green and blue light at zero.
79
To see a full list of 16384 different colors based on red light varying from 0 to 255,
click on one of the hexadecimal or rgb values below.
80
Shades of Gray
Gray colors are displayed using an equal amount of power to all of the light sources. To
make it easier for you to select the right gray color we have compiled a table of gray
shades for you:
RGB(0,0,0) #000000
RGB(8,8,8) #080808
RGB(16,16,16) #101010
RGB(24,24,24) #181818
RGB(32,32,32) #202020
RGB(40,40,40) #282828
RGB(48,48,48) #303030
RGB(56,56,56) #383838
RGB(64,64,64) #404040
RGB(72,72,72) #484848
RGB(80,80,80) #505050
RGB(88,88,88) #585858
RGB(96,96,96) #606060
RGB(104,104,104) #686868
RGB(112,112,112) #707070
RGB(120,120,120) #787878
RGB(128,128,128) #808080
RGB(136,136,136) #888888
RGB(144,144,144) #909090
RGB(152,152,152) #989898
RGB(160,160,160) #A0A0A0
RGB(168,168,168) #A8A8A8
RGB(176,176,176) #B0B0B0
RGB(184,184,184) #B8B8B8
RGB(192,192,192) #C0C0C0
RGB(200,200,200) #C8C8C8
RGB(208,208,208) #D0D0D0
RGB(216,216,216) #D8D8D8
RGB(224,224,224) #E0E0E0
RGB(232,232,232) #E8E8E8
RGB(240,240,240) #F0F0F0
RGB(248,248,248) #F8F8F8
RGB(255,255,255) #FFFFFF
81
HTML Color Names
The table below provides a list of the color names that are supported by all major
browsers.
Note: If you want your pages to validate with an HTML or a CSS validator, W3C has
listed 16 color names that you can use: aqua, black, blue, fuchsia, gray, green,
lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow. If you want to
use other colors, you must specify their RGB or HEX value.
85