What is HTML?

HTML is a markup language for describing web documents (web pages).

  • HTML stands for Hyper Text Markup Language
  • A markup language is a set of markup tags
  • HTML documents are described by HTML tags

Each HTML tag describes different document content

 

HTML Example

<!DOCTYPE html>

<html>

<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

</body>

</html>

 

Example Explained

  • The DOCTYPE declaration defines the document type
  • The text between <html> and </html> describes the web document
  • The text between <body> and </body> describes the visible page content
  • The text between <h1> and </h1> describes a heading
  • The text between <p> and </p> describes paragraph

Using the description, a web browser can display a document with a heading and a paragraph.

 

HTML Tags

HTML tags are keywords (tag names) surrounded by angle brackets:

<tagname>content</tagname>

 

  • HTML tags normally come in pairs like <p> and </p>
  • The first tag in a pair is the start tag or opening tag, the second tag is the end tag or closing

The end tag is written like the start tag, but with a slash before the tag name

 

Web Browsers

The purpose of a web browser (Chrome, IE, Firefox, Safari) is to read HTML documents and display them.

 

HTML Page Structure

Below is a visualization of an HTML page structure:

<html>

<body>

<h1>This is a heading</h1>

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

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

</body>

</html>

 

HTML Versions

Since the early days of the web, there have been many versions of HTML:

Version

Year

HTML

1991

HTML+

1993

HTML 2.0

1995

HTML 3.2

1997

HTML 4.01

1999

XHTML

2000

HTML5

2012

 

The <!DOCTYPE> Declaration

The <!DOCTYPE> declaration helps the browser to display a web page correctly.

There are many different documents on the web, and a browser can only display an HTML page correctly if it knows the HTML version and type.

 

Common Declarations

HTML5

<!DOCTYPE html>

HTML 4.01

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

XHTML 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

All tutorials and examples at W3Schools use HTML5.

 

Write HTML Using Notepad or TextEdit

HTML can be edited by using a professional HTML editor like:

  • Adobe Dreamweaver
  • Microsoft Expression Web
  • CoffeeCup HTML Editor

However, for learning HTML we recommend a text editor like Notepad (PC) or TextEdit (Mac).

We believe using a simple text editor is a good way to learn HTML.

How to create First HTML Page

Write or copy a simple HTML in notepad.

<html>

<body>

<h1>Hello World</h1>

<p>My First HTML page</p>

</body>

</html>

Save the file on your computer.

Select File -> Save as in the Notepad menu.

When saving an HTML file, use either the .htm or the .html file extension. There is no difference, it is entirely up to you.

To view HTML Page in Your Browser double-click your saved HTML file.

 

HTML Documents

All HTML documents must start with a type declaration: <!DOCTYPE html>.

The HTML document itself begins with <html> and ends with </html>.

The visible part of the HTML document is between <body> and </body>.

 

Example

<!DOCTYPE html>

<html>

<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

</body>

</html>

 

HTML Headings

HTML headings are defined with the <h1> to <h6> tags:

Example

<h1>This is a heading</h1>

<h2>This is a heading</h2>

<h3>This is a heading</h3>

 

HTML Paragraphs

HTML paragraphs are defined with the <p> tag:

Example

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

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

 

HTML Links

HTML links are defined with the <a> tag:

Example

<a href="http://www.google.com">This is a link</a>

The link address is specified in the href attribute.

Attributes are used to provide additional information about HTML elements.

 

 

HTML Images

HTML images are defined with the <img> tag.

The source file (src), alternative text (alt), and size (width and height) are provided as attributes:

Example

<img src="google.jpg" alt="google.com" width="104" height="142">

 

HTML Elements

HTML elements are written with a start tag, with an end tag, with the content in between:

<tagname>content</tagname>

The HTML element is everything from the start tag to the end tag:

<p>My first paragraph.</p>

 

Start tag

Element content

End tag

<h1>

My First Heading

</h1>

<p>

My first paragraph.

</p>

<br>

 

 

 

 

Some HTML elements do not have an end tag.

 

Nested HTML Elements

HTML elements can be nested (elements can contain elements).

All HTML documents consist of nested HTML elements.

This example contains 4 HTML elements:

Example

<!DOCTYPE html>

<html>

<body>

  <h1>My First Heading</h1>

  <p>My first paragraph.</p>

</body>

</html>

 

HTML Example Explained

The <html> element defines the whole document.

It has a start tag <html> and an end tag </html>.

The element content is another HTML element (the <body> element).

<html>

<body>

  <h1>My First Heading</h1>

  <p>My first paragraph.</p>

</body>

</html>

The <body> element defines the document body.

It has a start tag <body> and an end tag </body>.

The element content is two other HTML elements (<h1> and <p>).

<body>

  <h1>My First Heading</h1>

  <p>My first paragraph.</p>

</body>

The <h1> element defines a heading.

It has a start tag <h1> and an end tag </h1>.

The element content is: My First Heading.

<h1>My First Heading</h1>

The <p> element defines a paragraph.

It has a start tag <p> and an end tag </p>.

The element content is: My first paragraph.

<p>My first paragraph.</p>

 

 

Don't Forget the End Tag

Some HTML elements will display correctly, even if you forget the end tag:

Example

<html>

<body>

  <p>This is a paragraph

  <p>This is a paragraph 

</body>

</html>

 

Empty HTML Elements

HTML elements with no content are called empty elements.

<br> is an empty element without a closing tag (the <br> tag defines a line break).

Empty element can be "closed" in the opening tag like this: <br />.

HTML5 does not require empty elements to be closed. But if you need stricter validation, and make your document readable by XML parsers, please close all HTML elements. 

HTML Tip: Use Lowercase Tags

HTML tags are not case sensitive: <P> means the same as <p>.

The HTML5 standard does not require lowercase tags, but W3C recommends lowercase in HTML4, and demandslowercase for stricter document types like XHTML.

 

At W3Schools we always use lowercase tags.

 

 

 

HTML Headings

Headings are defined with the <h1> to <h6> tags.

<h1> defines the most important heading. <h6> defines the least important heading.

Example

<h1>This is a heading</h1>

<h2>This is a heading</h2>

<h3>This is a heading</h3>

 

Headings Are Important

Use HTML headings for headings only. Don't use headings to make text BIG or bold.

Search engines use your headings to index the structure and content of your web pages.

Users skim your pages by its headings. It is important to use headings to show the document structure.

h1 headings should be main headings, followed by h2 headings, then the less important h3, and so on.

 

HTML Horizontal Rules

The <hr> tag creates a horizontal line in an HTML page.

The hr element can be used to separate content:

Example

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


Try it Yourself »

 

 

The HTML <head> Element

The HTML <head> element has nothing to do with HTML headings.

The HTML <head> element only contains meta data.

The HTML <head> element is placed between the <html> tag and the <body> tag:

Example

<!DOCTYPE html>
<html>

<head>
  <title>My First HTML</title>
  <meta charset="UTF-8">
</head>

<body>
.
.
.


Try it Yourself »

 

Meta data: Data about data. HTML meta data: Data about the HTML document.

 

The HTML <title> Element

The HTML <title> element is meta data.

It defines the HTML document's title. It will not be displayed in the document.

However, might be displayed in one of the browser tabs.

 

The HTML <meta> Element

The HTML <meta> element is meta data.

It defines the character set used in the HTML document.

 

More Meta Elements

In the following chapter you will learn more about meta elements:

The HTML <style> element defines internal CSS style sheets.

The HTML <link> element can define external CSS style sheets.

 

HTML Tip - How to View HTML Source

Have you ever seen a Web page and wondered "Hey! How did they do that?"

To find out, right-click in the page and select "View Page Source" (in Chrome) or "View Source" (in IE), or similar in another browser. This will open a window containing the HTML code of the page.

 

 

Examples From This Page

HTML Headings
How to display headings in an HTML document.

HTML horizontal rules
How to insert horizontal lines.

The HTML <head> element
How to add meta information.

 

HTML Tag Reference

W3Schools' tag reference contains additional information about these tags and their attributes.

You will learn more about HTML tags and attributes in the next chapters of this tutorial.

Tag

Description

<html>

Defines an HTML document

<body>

Defines the document's body

<head>

Defines the document's head Element

<h1> to <h6>

Defines HTML headings

<hr>

Defines a horizontal line

 

 

 

HTML Paragraphs

Paragraphs are defined with the <p> tag.

Example

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


Try it Yourself 

Note:聽Browsers automatically add an empty line before and after a paragraph.

 

Don't Forget the End Tag

Most browsers will display HTML correctly even if you forget the end tag:

Example

<p>This is a paragraph
<p>This is another paragraph


Try it Yourself 

The example above will work in most browsers, but don't rely on it. Forgetting the end tag can produce unexpected results or errors.

Note:聽Future version of HTML will not allow you to skip end tags.

 

HTML Line Breaks

Use the <br> tag if you want a line break (a new line) without starting a new paragraph:

Example

<p>This is<br>a para<br>graph with line breaks</p>


Try it Yourself 

The <br> element is an empty HTML element. It has no end tag.

 

HTML Output - Useful Tips

You cannot be sure how HTML will be displayed. Large or small screens, and resized windows will create different results.

With HTML, you cannot change the output by adding extra spaces or extra lines in your HTML code.

The browser will remove extra spaces and extra lines when the page is displayed. Any number of lines count as one line, and any number of spaces count as one space.

Try it Yourself 

(The example demonstrates some HTML formatting problems)

 

 

Examples from this page

HTML paragraphs
How HTML paragraphs are displayed in a browser.

Line breaks
The use of line breaks in an HTML document.

Poem problems
Some problems with HTML formatting.

More Examples

More paragraphs
The default behaviour of paragraphs.

 

HTML Tag Reference

W3Schools' tag reference contains additional information about HTML elements and their attributes.

Tag

Description

<p>

Defines a paragraph

<br>

Inserts a single line break

 

 

HTML Text Formatting

This text is bold

This text is italic

This is computer output

This is subscript and superscript


Try it Yourself »

 

HTML Formatting Tags

HTML uses tags like <b> and <i> for formatting output, like bold or italic text.

These HTML tags are called formatting tags (look at the bottom of this page for a complete reference).

 

Often <strong> renders as <b>, and <em> renders as <i>.

However, there is a difference in the meaning of these tags:

<b> or <i> defines bold or italic text only.

<strong> or <em> means that you want the text to be rendered in a way that the user understands as "important". Today, all major browsers render strong as bold and em as italics. However, if a browser one day wants to make a text highlighted with the strong feature, it might be cursive for example and not bold!

 

 

 

Try it Yourself - Examples

Text formatting
How to format text in an HTML document.

Preformatted text
How to control the line breaks and spaces with the <pre> tag.

"Computer output" tags
How different "computer output" tags will be displayed.

Address
How to define contact information for the author/owner of an HTML document.

Abbreviations and acronyms
How to handle abbreviations and acronyms.

Text direction
How to change the text direction.

Quotations
How to handle long and short quotations.

Deleted and inserted text
How to mark deleted and inserted text.

Marked/Highlighted text
How to mark/highlight text.

 

 

 

 

 

 

END

 

 

 

 

HTML Text Formatting Tags

Tag

Description

<b>

Defines bold text

<em>

Defines emphasized text 

<i>

Defines a part of text in an alternate voice or mood

<small>

Defines smaller text

<strong>

Defines important text

<sub>

Defines subscripted text

<sup>

Defines superscripted text

<ins>

Defines inserted text

<del>

Defines deleted text

<mark>

Defines marked/highlighted text

HTML "Computer Output" Tags

Tag

Description

<code>

Defines computer code text

<kbd>

Defines keyboard text 

<samp>

Defines sample computer code

<var>

Defines a variable

<pre>

Defines preformatted text

HTML Citations, Quotations, and Definition Tags

Tag

Description

<abbr>

Defines an abbreviation or acronym

<address>

Defines contact information for the author/owner of a document

<bdo>

Defines the text direction

<blockquote>

Defines a section that is quoted from another source

<q>

Defines an inline (short) quotation

<cite>

Defines the title of a work

<dfn>

Defines a definition term

 

 

HTML Comment Tags

You can add comments to your HTML source by using the following syntax:

<!-- Write your comments here -->

 

 

Note: There is an exclamation point (!) in the opening tag, but not in the closing tag.

Comments are not displayed by the browser, but they can help document your HTML.

With comments you can place notifications and reminders in your HTML:

Example

<!-- This is a comment -->

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

<!-- Remember to add more information here -->


Try it Yourself »

Comments are also great for debugging HTML, because you can comment out HTML lines of code, one at a time, to search for errors:

Example

<!-- Do not display this at the moment
<img border="0" src="pic_mountain.jpg" alt="Mountain">
-->


Try it Yourself »

 

 

Conditional Comments

You might stumble upon conditional comments in HTML:

<!--[if IE 8]>
    .... some HTML here ....
<![endif]-->

Conditional comments defines HTML tags to be executed by IE only.

 

Software Program Tags

HTML comments tags can also be generated by various HTML software programs.

For example <!--webbot bot--> tags wrapped inside HTML comments by FrontPage and Expression Web.

As a rule, let these tags stay, to help support the software that created them.

 

 

Examples From This Page

Hidden comments

Comments for debugging

 

 

HTML Attributes

  • HTML elements can have attributes
  • Attributes provide additional information about an element
  • Attributes are always specified in the start tag
  • Attributes come in name/value pairs like: name="value"

 

The lang Attribute

The document language can be declared in the <html> tag.

The language is declared in the lang attribute.

Declaring a language is important for accessibility applications (screen readers) and search engines:

Example

<!DOCTYPE html>
<html lang="en-US">
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

</body>
</html>

The first two letters specify the language (en). If there is a dialect, use two more letters (US).

 

The title Attribute

HTML paragraphs are defined with the <p> tag.

In this example, the <p> element has a title attribute. The value of the attribute is "About W3Schools":

Example

<p title="About W3Schools">
W3Schools is a web developer's site.
It provides tutorials and references covering
many aspects of web programming,
including HTML, CSS, JavaScript, XML, SQL, PHP, ASP, etc.
</p>


Try it Yourself »

 

When you move the mouse over the element, the title will be displayed as a tooltip.

 

The href Attribute

HTML links are defined with the <a> tag. The link address is specified in the href attribute:

Example

<a href="http://www.w3schools.com">This is a link</a>


Try it Yourself »

You will learn more about links and the <a> tag later in this tutorial.

 

Size Attributes

HTML images are defined with the <img> tag.

The filename of the source (src), and the size of the image (width and height) are all provided as attributes:

Example

<img src="w3schools.jpg" width="104" height="142">


Try it Yourself »

The image size is specified in pixels: width="104" means 104 screen pixels wide.

You will learn more about images and the <img> tag later in this tutorial.

 

The alt Attribute

The alt attribute specifies an alternative text to be used, when an HTML element cannot be displayed.

The value of the attribute can be read by "screen readers". This way, someone "listening" to the webpage, i.e. a blind person, can "hear" the element.

Example

<img src="w3schools.jpg" alt="W3Schools.com" width="104" height="142">


Try it Yourself »

 

 

We Suggest: Always Use Lowercase Attributes

The HTML5 standard does not require lower case attribute names.

The title attribute can be written with upper or lower case like Title and/or TITLE.

W3C recommends lowercase in HTML4, and demands lowercase for stricter document types like XHTML.

 

Lower case is the most common. Lower case is easier to type.
At W3Schools we always use lower case attribute names.

 

We Suggest: Always Quote Attribute Values

The HTML5 standard does not require quotes around attribute values.

The href attribute, demonstrated above, can be written as:

Example

<a href=http://www.w3schools.com>


Try it Yourself »

W3C recommends quotes in HTML4, and demands quotes for stricter document types like XHTML.

Sometimes it is necessary to use quotes. This will not display correctly, because it contains a space:

Example

<p title=About W3Schools>


Try it Yourself »

 

Using quotes are the most common. Omitting quotes can produce errors. 
At W3Schools we always use quotes around attribute values.

 

Single or Double Quotes?

Double style quotes are the most common in HTML, but single style can also be used.

In some situations, when the attribute value itself contains double quotes, it is necessary to use single quotes:

Example

<p title='John "ShotGun" Nelson'>

Or vice versa:

Example

<p title="John 'ShotGun' Nelson">

 

 

Chapter Summary

  • All HTML elements can have attributes
  • The HTML title attribute provides additional "tool-tip" information
  • The HTML href attribute provides address information for links
  • The HTML width and height attributes provide size information for images
  • The HTML alt attribute provides text for screen readers
  • At W3Schools we always use lowercase HTML attribute names
  • At W3Schools we always quote attributes with double qoutes

 

 

Try it Yourself Summary

The HTML title attribute

The HTML href attribute

The HTML width and height attributes

The HTML alt attribute

An HTML attribute without quotes

An HTML attribute without quotes that does not work

 

Test Yourself Exercises

Exercise 1 »    Exercise 2 »    Exercise 3 »   

 

HTML Attributes

Below is an alphabetical list of some attributes often used in HTML:

Attribute

Description

alt

Specifies an alternative text for an image

disabled

Specifies that an input element should be disabled

href

Specifies the URL (web address) for a link

id

Specifies a unique id for an element

src

Specifies the URL (web address) for an image

style

Specifies an inline CSS style for an element

title

Specifies extra information about an element (displayed as a tool tip)

value

Specifies the value (text content) for an input element.

A complete list, of all legal attributes for each HTML element, is listed in our: HTML Tag Reference.