An HTML file is a text file containing small markup tags
The markup tags tell the Web browser how to display the page
An HTML file must have an htm or html file extension
An HTML file can be created using a simple text editor
Do You Want to Try It?
If you are running Windows, start Notepad.
If you are on a Mac start SimpleText.
In OSX start TextEdit and change the following preferences: Select (in the preferences window) "Plain text" instead of "Rich text" and then select "Ignore rich text commands in HTML files". This is very important because if you don't do this HTML codes probably won't work.
Type in the following text:
Title of page
This is my first homepage. This text is bold
Save the file as "mypage.htm".
Start your Internet browser. Select "Open" (or "Open Page") in the File menu of your browser. A dialog box will appear. Select "Browse" (or "Choose File") and locate the HTML file you just created - "mypage.htm" - select it and click "Open". Now you should see an address in the dialog box, for example "C:\MyDocuments\mypage.htm". Click OK, and the browser will display the page.
Example Explained
The first tag in your HTML document is . This tag tells your browser that this is the start of an HTML document. The last tag in your document is . This tag tells your browser that this is the end of the HTML document.
The text between the tag and the tag is header information. Header information is not displayed in the browser window.
The text between the tags is the title of your document. The title is displayed in your browser's caption.
The text between the tags is the text that will be displayed in your browser.
The text between the and tags will be displayed in a bold font.
HTM or HTML Extension?
When you save an HTML file, you can use either the .htm or the .html extension. We have used .htm in our examples. It might be a bad habit inherited from the past when some of the commonly used software only allowed three letter extensions.
With newer software we think it will be perfectly safe to use .html.
HTML Tags
HTML tags are used to mark-up HTML elements
HTML tags are surrounded by the two characters <>
The surrounding characters are called angle brackets
HTML tags normally come in pairs like and
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, means the same as
HTML Elements
Remember the HTML example from the previous page:
Title of page
This is my first homepage. This text is bold
This is an HTML element:
This text is bold
The HTML element starts with a start tag: The content of the HTML element is: This text is bold
The HTML element ends with an end tag:
The purpose of the tag is to define an HTML element that should be displayed as bold.
This is also an HTML element:
This is my first homepage. This text is bold
This HTML element starts with the start tag , and ends with the end tag .
The purpose of the tag is to define the HTML element that contains the body of the HTML document.
Why do We Use Lowercase Tags?
We have just said that HTML tags are not case sensitive: means the same as . When you surf the Web, you will notice that most tutorials use uppercase HTML tags in their examples. We always use lowercase tags. Why?
If you want to prepare yourself for the next generations of HTML, you should start using lowercase tags. The World Wide Web Consortium (W3C) recommends lowercase tags in their HTML 4 recommendation, and XHTML (the next generation HTML) demands lowercase tags.
Tag Attributes
Tags can have attributes. Attributes can provide additional information about the HTML elements on your page.
This tag defines the body element of your HTML page: . With an added bgcolor attribute, you can tell the browser that the background color of your page should be red, like this: .
This tag defines an HTML table:
. With an added border attribute, you can tell the browser that the table should have no borders:
Attributes always come in name/value pairs like this: name="value".
Attributes are always added to the start tag of an HTML element.
Quote Styles, "red" or 'red'?
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:
name='John "ShotGun" Nelson'
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
to
tags.
defines the largest heading.
defines the smallest heading.
This is a heading
This is a heading
This is a heading
This is a heading
This is a heading
This is a heading
HTML automatically adds an extra blank line before and after a heading.
Paragraphs
Paragraphs are defined with the
tag.
This is a paragraph
This is another paragraph
HTML automatically adds an extra blank line before and after a paragraph.
Line Breaks
The tag is used when you want to end a line, but don't want to start a new paragraph. The tag forces a line break wherever you place it.
This is a para graph with line breaks
The tag is an empty tag. It has no closing tag.
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.
Basic Notes - Useful Tips
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
to insert blank lines is a bad habit. Use the tag instead. (But don't use the tag to create lists. Wait until you have learned about HTML lists.)
You might have noticed that paragraphs can be written without the closing tag
. Don't rely on it. The next version of HTML will not allow you to skip ANY closing tags.
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 tag), to separate the sections in our tutorials.
HTML defines a lot of elements for formatting output, like bold or italic text.
Below are a lot of examples that you can try out yourself:
How to View HTML Source
Have you ever seen a Web page and wondered "How do they do that?"
To find out, simply click on the VIEW option in your browsers toolbar and select SOURCE or PAGE SOURCE. This will open a window that shows you the actual HTML of the page.
Text Formatting Tags
Tag
Description
Defines bold text
Defines big text
Defines emphasized text
Defines italic text
Defines small text
Defines strong text
Defines subscripted text
Defines superscripted text
Defines inserted text
Defines deleted text
Deprecated. Use <del> instead
Deprecated. Use <del> instead
Deprecated. Use styles instead
"Computer Output" Tags
Tag
Description
Defines computer code text
Defines keyboard text
Defines sample computer code
Defines teletype text
Defines a variable
Defines preformatted text
Deprecated. Use
instead
Deprecated. Use
instead
Deprecated. Use
instead
Citations, Quotations, and Definition Tags
Tag
Description
Defines an abbreviation
Defines an acronym
Defines an address element
Defines the text direction
Defines a long quotation
Defines a short quotation
Defines a citation
Defines a definition term
Some characters like the <>
To display a less than sign (<) in HTML, we have to use a character entity.
Character Entities
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.
Note that the entities are case sensitive.
This example lets you experiment with character entities: Character Entities IE only
Non-breaking Space
The most common character entity in HTML is the 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.
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:
target="_blank">Visit W3Schools!
The Anchor Tag and the Name Attribute
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.
Always add a trailing slash to subfolder references. If you link like this: href="http://www.w3schools.com/html", 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="http://www.w3schools.com/html/"
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.
Link Tags
Tag
Description
Defines an anchor
Examples
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.
The disadvantages of using frames are:
The web developer must keep track of more HTML documents
It is difficult to print the entire page
The Frameset Tag
The
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
The Frame Tag
The tag defines what HTML document to put into each frame
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:
Basic Notes - Useful Tips
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 tag.
Add the tag for browsers that do not support frames.
Important: You cannot use the tags together with the tags! However, if you add a tag containing some text for browsers that do not support frames, you will have to enclose the text in tags! See how it is done in the first example below.
Frame Tags
Tag
Description
Defines a set of frames
Defines a sub window (a frame)
Defines a noframe section for browsers that do not handle frames
Defines an inline sub window (frame)
Tables
Tables are defined with the
tag. A table is divided into rows (with the
tag), and each row is divided into data cells (with the
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.
row 1, cell 1
row 1, cell 2
row 2, cell 1
row 2, cell 2
How it looks in a browser:
row 1, cell 1
row 1, cell 2
row 2, cell 1
row 2, cell 2
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:
Row 1, cell 1
Row 1, cell 2
Headings in a Table
Headings in a table are defined with the
tag.
Heading
Another Heading
row 1, cell 1
row 1, cell 2
row 2, cell 1
row 2, cell 2
How it looks in a browser:
Heading
Another Heading
row 1, cell 1
row 1, cell 2
row 2, cell 1
row 2, cell 2
Empty Cells in a Table
Table cells with no content are not displayed very well in most browsers.
row 1, cell 1
row 1, cell 2
row 2, cell 1
How it looks in a browser:
row 1, cell 1
row 1, cell 2
row 2, cell 1
Note that the borders around the empty table cell are missing (NB! Mozilla Firefox displays the border).
To avoid this, add a non-breaking space ( ) to empty data cells, to make the borders visible:
row 1, cell 1
row 1, cell 2
row 2, cell 1
How it looks in a browser:
row 1, cell 1
row 1, cell 2
row 2, cell 1
Basic Notes - Useful Tips
The , and 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.
HTML supports ordered, unordered and definition lists.
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
tag. Each list item starts with the
tag.
Coffee
Milk
Here is how it looks in a browser:
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 tag. Each list item starts with the
tag.
Coffee
Milk
Here is how it looks in a browser:
Coffee
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
tag. Each definition-list term starts with the
tag. Each definition-list definition starts with the
tag.
Coffee
Black hot drink
Milk
White cold drink
Here is how it looks in a browser:
Coffee
Black hot drink
Milk
White cold drink
Inside a definition-list definition (the
tag) you can put paragraphs, line breaks, images, links, other lists, etc.
List Tags
Tag
Description
Defines an ordered list
Defines an unordered list
Defines a list item
Defines a definition list
Defines a definition term
Defines a definition description
Deprecated. Use
instead
Deprecated. Use
instead
Forms
A form is an area that can contain form elements.
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.
A form is defined with the
Input
The most used form tag is the 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.
First name:
Last name:
How it looks in a browser:
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.
Radio Buttons
Radio Buttons are used when you want the user to select one of a limited number of choices.
Male
Female
How it looks in a browser:
Note that only one option can be chosen.
Checkboxes
Checkboxes are used when you want the user to select one or more options of a limited number of choices.
I have a bike
I have a car
How it looks in a browser:
The Form's Action Attribute and the Submit Button
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.
method="get">
Username:
How it looks in a browser:
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.
Form Tags
Tag
Description
Defines a form for user input
Defines an input field
Defines a text-area (a multi-line text input control)
Defines a label to a control
Defines a fieldset
Defines a caption for a fieldset
Defines a selectable list (a drop-down box)
Defines an option group
Defines an option in the drop-down box
Defines a push button
Deprecated. Use instead
The Image Tag and the Src Attribute
In HTML, images are defined with the tag.
The 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.
The syntax of defining an image:
The URL points to the location where the image is stored. An image named "boat.gif" located in the directory "images" on "www.w3schools.com" has the URL: http://www.w3schools.com/images/boat.gif.
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.
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.
Basic Notes - Useful Tips
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.
Image Tags
Tag
Description
Defines an image
Defines an image map
Defines a clickable area inside an image map
A good background can make a Web site look really great.
Backgrounds
The 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:
The lines above all set the background-color to black.
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.
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?
Basic Notes - Useful Tips
The bgcolor, background, and the text attributes in the 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).
Color Values
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 light source is 0 (hex #00). The highest value is 255 (hex #FF).
This table shows the result of combining Red, Green, and Blue light sources:.
Color
Color HEX
Color RGB
#000000
rgb(0,0,0)
#FF0000
rgb(255,0,0)
#00FF00
rgb(0,255,0)
#0000FF
rgb(0,0,255)
#FFFF00
rgb(255,255,0)
#00FFFF
rgb(0,255,255)
#FF00FF
rgb(255,0,255)
#C0C0C0
rgb(192,192,192)
#FFFFFF
rgb(255,255,255)
Color Names
A collection of color names is supported by most browsers.
Note: Only 16 color names are supported by the W3C HTML 4.0 standard (aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow). For all other colors you should use the Color HEX value.
Color
Color HEX
Color Name
#F0F8FF
AliceBlue
#FAEBD7
AntiqueWhite
#7FFFD4
Aquamarine
#000000
Black
#0000FF
Blue
#8A2BE2
BlueViolet
#A52A2A
Brown
Web Safe Colors
A few years ago, when most computers supported only 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 more and more computers are equipped with the ability to display millions of different colors, but the choice is left to you.
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).
HTML Basic Document
Document name goes here
Visible text goes here
Heading Elements
Largest Heading
. . .
. . .
. . .
. . .
Smallest Heading
Text Elements
This is a paragraph
(line break)
(horizontal rule)
This text is preformatted
Logical Styles
This text is emphasized This text is strong This is some computer code
Everywhere on the Web you will find pages that are formatted like newspaper pages using HTML columns.
HTML Layout - Using Tables
One very common practice with HTML, is to use HTML tables to format the layout of an HTML page.
A part of this page is formatted with two columns, like a newspaper page.
As you can see on this page, there is a left column and a right column.
This text is displayed in the left column.
An HTML
is used to divide a part of this Web page into two columns.
The trick is to use a table without borders, and maybe a little extra cell-padding.
No matter how much text you add to this page, it will stay inside its column borders.
Same Layout - Color Added
One very common practice with HTML, is to use HTML tables to format the layout of an HTML page.
A part of this page is formatted with two columns, like a newspaper page.
As you can see at this page, there is a left column and a right column.
An HTML
is used to divide a part of this Web page into two columns.
This text is displayed in the right column.
The trick is to use a table without borders, and maybe a little extra cell-padding.
No matter how much text you add to this page, it will stay inside its column borders.
The HTML Tag
With HTML code like this, you can specify both the size and the type of the browser output :
This is a paragraph.
This is another paragraph.
Font Attributes
Attribute
Example
Purpose
size="number"
size="2"
Defines the font size
size="+number"
size="+1"
Increases the font size
size="-number"
size="-1"
Decreases the font size
face="face-name"
face="Times"
Defines the font-name
color="color-value"
color="#eeff00"
Defines the font color
color="color-name"
color="red"
Defines the font color
The Tag Should NOT be Used
The tag is deprecated in the latest versions of HTML (HTML 4 and XHTML).
The World Wide Web Consortium (W3C) has removed the tag from its recommendations. In future versions of HTML, style sheets (CSS) will be used to define the layout and display properties of HTML elements.
How to Use Styles
When a browser reads a style sheet, it will format the document according to it. There are three ways of inserting a style sheet:
External Style Sheet
An external style sheet is ideal when the style is applied to many pages. With an external style sheet, you can change the look of an entire Web site by changing one file. Each page must link to the style sheet using the tag. The tag goes inside the head section.
href="mystyle.css">
Internal Style Sheet
An internal style sheet should be used when a single document has a unique style. You define internal styles in the head section with the
Inline Styles
An inline style should be used when a unique style is to be applied to a single occurrence of an element.
To use inline styles you use the style attribute in the relevant tag. The style attribute can contain any CSS property. The example shows how to change the color and the left margin of a paragraph:
This is a paragraph
Style Tags
Tag
Description
Defines a style definition
Defines a resource reference
Defines a section in a document
Defines a section in a document
Deprecated. Use styles instead
Deprecated. Use styles instead
Deprecated. Use styles instead
The Head Element
The head element contains general information, also called meta-information, about a document. Meta means "information about".
You can say that meta-data means information about data, or meta-information means information about information.
Information Inside the Head Element
The elements inside the head element should not be displayed by a browser.
According to the HTML standard, only a few tags are legal inside the head section. These are: , , , ,