HTML is the foundation of web pages. If you want to learn web development, HTML is one of the best places to start because it teaches you how content is structured inside a browser.
In this beginner tutorial, you'll learn HTML step by step using practical examples. We'll cover headings, paragraphs, links, images, lists, tables, forms and finally combine everything into a simple web page.
What Is HTML?
HTML stands for HyperText Markup Language. It is a markup language used to describe the structure and meaning of content on a web page.
HTML isn't normally used to perform application logic like a programming language such as C#, JavaScript or Python. Instead, it defines content such as:
- Headings
- Paragraphs
- Links
- Images
- Lists
- Tables
- Forms
- Page sections
HTML, CSS and JavaScript
When you're learning web development, you'll frequently see HTML, CSS and JavaScript used together.
| Technology | Main Purpose |
|---|---|
| HTML | Structures the content |
| CSS | Controls presentation and layout |
| JavaScript | Adds behavior and interactivity |
A simple way to think about them is:
HTML → Structure
CSS → Presentation
JavaScript → Behavior
Your First HTML Page
Open a text editor such as Visual Studio Code and create a file named:
index.html
Add the following:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<title>My First Web Page</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is my first HTML page.</p>
</body>
</html>
Save the file and open it in a web browser. You should see the heading and paragraph.
Understanding the Basic HTML Structure
Let's look at the important parts.
<!DOCTYPE html>
This declaration tells the browser that the document uses modern HTML.
<html>
The <html> element represents the root of the HTML
document.
<head>
The <head> contains document metadata and resources
that aren't normally displayed as the main page content.
For example:
- Page title
- Character encoding
- Viewport configuration
- Stylesheets
- Other metadata
<body>
The <body> contains the content displayed as part of
the page.
HTML Elements and Tags
An HTML element commonly contains an opening tag, content and a closing tag.
<p>Hello World</p>
Here:
<p>is the opening tag.Hello Worldis the content.</p>is the closing tag.
HTML Headings
HTML provides six heading levels:
<h1>Main Heading</h1>
<h2>Section Heading</h2>
<h3>Subsection Heading</h3>
<h4>Heading Level 4</h4>
<h5>Heading Level 5</h5>
<h6>Heading Level 6</h6>
Use headings to create a meaningful content hierarchy rather than choosing a heading level only because of how large it looks.
HTML Paragraphs
Use the <p> element for paragraphs:
<p>
HTML is used to structure content on a web page.
</p>
You can create multiple paragraphs:
<p>This is the first paragraph.</p>
<p>This is the second paragraph.</p>
HTML Links
Links are created using the <a> element.
<a href="https://example.com">
Visit Example
</a>
The href attribute specifies the destination.
HTML Images
Images are added with the <img> element.
<img
src="photo.jpg"
alt="Mountain landscape">
The important attributes are:
src— specifies the image resource.alt— provides a text alternative when appropriate.
Useful alternative text should describe the image's purpose or relevant content rather than simply repeating "image."
HTML Attributes
Attributes provide additional information about an HTML element.
For example:
<a href="about.html">About Us</a>
In this example, href is an attribute of the link.
Another example:
<input
type="email"
name="email"
required>
HTML Lists
HTML supports ordered and unordered lists.
Unordered List
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
This creates a bulleted list.
Ordered List
<ol>
<li>Learn HTML</li>
<li>Learn CSS</li>
<li>Learn JavaScript</li>
</ol>
This creates a numbered list.
HTML Tables
Tables are useful for genuinely tabular information.
<table>
<thead>
<tr>
<th>Technology</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td>HTML</td>
<td>Structure</td>
</tr>
<tr>
<td>CSS</td>
<td>Presentation</td>
</tr>
</tbody>
</table>
Important table elements include:
<table>— table<tr>— table row<th>— header cell<td>— data cell
HTML Forms
Forms allow users to provide information.
Here's a basic example:
<form>
<label for="name">Name:</label>
<input
type="text"
id="name"
name="name">
<label for="email">Email:</label>
<input
type="email"
id="email"
name="email">
<button type="submit">
Submit
</button>
</form>
A real application also needs appropriate validation and server-side processing when submitted data is sent to a backend.
Common HTML Input Types
HTML supports different input types:
<input type="text">
<input type="email">
<input type="password">
<input type="number">
<input type="date">
<input type="checkbox">
<input type="radio">
<input type="file">
Choose an input type that matches the information you expect from the user.
HTML Buttons
A button can be created using:
<button type="button">
Click Me
</button>
Inside a form, explicitly setting the appropriate button type helps make the intended behavior clear.
Semantic HTML
HTML contains semantic elements that describe the purpose of different parts of a page.
Examples include:
<header></header>
<nav></nav>
<main></main>
<article></article>
<section></section>
<aside></aside>
<footer></footer>
Using elements according to their meaning can improve document structure and accessibility.
Example Semantic Page Structure
<body>
<header>
<h1>My Website</h1>
</header>
<nav>
<a href="/">Home</a>
<a href="/about">About</a>
</nav>
<main>
<article>
<h2>Learning HTML</h2>
<p>
HTML is the foundation of web pages.
</p>
</article>
</main>
<footer>
<p>Website footer</p>
</footer>
</body>
HTML Comments
Comments allow developers to leave notes in the source code.
<!-- This is an HTML comment -->
Comments are visible in the page source, so never place passwords, API keys or other secrets inside HTML comments.
HTML id Attribute
The id attribute identifies an element within the document.
An ID should be unique within that document.
<section id="contact">
<h2>Contact Us</h2>
</section>
HTML class Attribute
The class attribute is commonly used to group elements for
styling or scripting.
<p class="highlight">
Important information
</p>
<p class="highlight">
Another important message
</p>
Add CSS to Your HTML
Once the page structure is ready, CSS can be used to control its presentation.
Create a file named:
styles.css
Add:
body {
font-family: Arial, sans-serif;
}
h1 {
text-align: center;
}
Then reference the stylesheet from the HTML document:
<link rel="stylesheet" href="styles.css">
Add JavaScript to HTML
JavaScript can add behavior to a page.
For example:
<button id="helloButton" type="button">
Say Hello
</button>
<script>
document
.getElementById('helloButton')
.addEventListener('click', function () {
alert('Hello!');
});
</script>
When the button is clicked, the JavaScript event handler runs.
Complete Beginner HTML Example
Now let's combine several of the concepts into one page:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta
name="viewport"
content="width=device-width, initial-scale=1.0">
<title>My Profile</title>
</head>
<body>
<header>
<h1>My Profile</h1>
</header>
<main>
<section>
<h2>About Me</h2>
<p>
I'm learning web development.
</p>
</section>
<section>
<h2>Technologies I'm Learning</h2>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</section>
<section>
<h2>Contact</h2>
<a href="mailto:hello@example.com">
Email Me
</a>
</section>
</main>
<footer>
<p>My first website</p>
</footer>
</body>
</html>
Save this as index.html and open it in your browser.
Common HTML Mistakes Beginners Make
1. Forgetting Closing Tags
Incorrect:
<p>Hello World
Correct:
<p>Hello World</p>
Some HTML elements have different syntax rules, but when an element requires a closing tag, make sure the document is properly structured.
2. Incorrectly Nesting Elements
Incorrect:
<strong>
<em>Hello
</strong>
</em>
A properly nested version is:
<strong>
<em>Hello</em>
</strong>
3. Using Headings Only for Their Size
Heading elements communicate document structure. Use CSS when you need to change visual appearance rather than selecting a heading solely because it looks bigger.
4. Forgetting Alternative Text for Images
Provide appropriate alt text when an image communicates
meaningful information.
<img
src="chart.png"
alt="Monthly sales increased from January to June">
5. Using Tables for Page Layout
Tables should generally represent tabular data rather than being used to construct the overall visual layout of a modern web page.
6. Putting Sensitive Information in HTML
Anything delivered to the browser should be treated as accessible to the user.
Never put secrets such as:
- Database passwords
- Private API keys
- Service credentials
inside client-side HTML or JavaScript.
HTML Practice Exercises
The best way to learn HTML is to build pages yourself.
Try these exercises:
- Create a personal profile page.
- Add headings and paragraphs.
- Add a profile image.
- Create a list of your skills.
- Add links to useful websites.
- Create a simple table.
- Create a contact form.
- Organize the page using semantic elements.
Beginner HTML Project Ideas
After learning the basics, try creating:
- Personal profile page
- Portfolio page
- Recipe page
- Product information page
- Simple documentation page
- Restaurant menu
- Event information page
Build the structure with HTML first. Then add CSS and, when needed, JavaScript.
Frequently Asked Questions
Is HTML a programming language?
HTML is a markup language used to structure web content. It doesn't provide general-purpose programming constructs in the same way languages such as C#, JavaScript or Python do.
Is HTML difficult to learn?
The basic syntax is relatively approachable. The best way to learn is to create small pages and gradually learn semantic structure, accessibility and related web technologies.
Do I need HTML before learning CSS?
Understanding basic HTML first is useful because CSS is used to style HTML elements and other structured web content.
Do I need HTML before JavaScript?
You can learn JavaScript independently, but if your goal is browser-based web development, understanding HTML makes it much easier to manipulate and interact with web pages.
Can I create a website using only HTML?
Yes, you can create a functional document or simple website using HTML alone. CSS is normally added for presentation, while JavaScript is used when client-side behavior is required.
What should I learn after HTML?
A common beginner path is:
HTML
↓
CSS
↓
JavaScript
↓
Git
↓
Web APIs
↓
Frameworks or backend development
Conclusion
HTML is one of the fundamental technologies of the web. It defines the structure and meaning of content using elements for headings, paragraphs, links, images, lists, tables, forms and page sections.
Don't try to memorize every HTML element. Learn the common elements, understand how documents are structured and practice by creating real pages.
Once you're comfortable with HTML, continue with CSS for presentation and JavaScript for browser-based behavior and interactivity.