1. Simple Personal Website
Concepts: Basic HTML structure,
paragraphs, links, images, forms.
Explanation:
This project introduces the basic structure of a webpage. It demonstrates how
to set up a header, a section with information about yourself, and a footer
with contact information. It also showcases how to include an image and a
hyperlink.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Personal Website
</title>
</head>
<body>
<header>
<h1>Welcome to My Personal Website
</h1>
</header>
<section>
<h2>About Me
</h2>
<p>Hello! I am a web developer.
</p>
<img src="my-photo.jpg" alt="My photo" width="200">
</section>
<footer>
<p>Contact me at
<a href="mailto:myemail@example.com">myemail@example.com
</a></p>
</footer>
</body>
</html>
Explanation:
<header>
: Contains the title of the page.<section>
: Contains the content of the page such as a description and image.<footer>
: Contains contact information and links.
2. Photo Gallery
Concepts: <div>
, CSS Grid,
images.
Explanation:
This project shows how to create a responsive photo gallery using CSS Grid. It
uses the <div>
element to wrap each image and applies a grid layout to display the images in
columns.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Photo Gallery
</title>
<style>
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.gallery img {
width: 100%;
height: auto;
}
</style>
</head>
<body>
<h1>My Photo Gallery
</h1>
<div class="gallery">
<div><img src="image1.jpg" alt="Image 1"></div>
<div><img src="image2.jpg" alt="Image 2"></div>
<div><img src="image3.jpg" alt="Image 3"></div>
</div>
</body>
</html>
Explanation:
- The
.gallery
class uses CSS Grid to arrange images in 3 columns. - The
<img>
tags display images with a set width and height to maintain responsiveness.
3. Resume Page
Concepts: Tables, links,
sections.
Explanation:
This project demonstrates how to create a simple resume using an HTML table. It
also introduces how to structure sections like "Experience" and
includes hyperlinks for more details.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Resume
</title>
</head>
<body>
<header>
<h1>John Doe's Resume
</h1>
</header>
<section>
<h2>Experience
</h2>
<table border="1">
<tr>
<th>Company
</th>
<th>Role
</th>
<th>Year
</th>
</tr>
<tr>
<td>Company A
</td>
<td>Web Developer
</td>
<td>2020-2022
</td>
</tr>
<tr>
<td>Company B
</td>
<td>Frontend Developer
</td>
<td>2018-2020
</td>
</tr>
</table>
</section>
<footer>
<p>For more info, contact me via
<a href="mailto:john.doe@example.com">email
</a>.
</p>
</footer>
</body>
</html>
Explanation:
<table>
is used to display work experience in a tabular format.- The
<th>
and<td>
elements are used to define table headers and data.
4. Contact Form
Concepts: Forms, inputs, labels,
buttons.
Explanation:
This project demonstrates how to create a contact form using form elements like
<input>
,
<textarea>
,
and <button>
.
The form sends data via POST method.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Form
</title>
</head>
<body>
<h1>Contact Us
</h1>
<form action="/submit" method="POST">
<label for="name">Name:
</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:
</label>
<input type="email" id="email" name="email" required><br><br>
<label for="message">Message:
</label><br>
<textarea id="message" name="message" rows="4" cols="50"></textarea><br><br>
<button type="submit">Submit
</button>
</form>
</body>
</html>
Explanation:
<form>
: Defines the form and its action (where the form data will be submitted).<input>
and<textarea>
: Collect user input.<button>
: Submits the form.
5. Navigation Bar
Concepts: Links, lists, CSS for
styling.
Explanation:
This project demonstrates how to create a simple navigation bar using unordered
lists (<ul>
)
and links (<a>
).
The CSS styles the list to create a horizontal navigation bar.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Navigation Bar
</title>
<style>
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline;
margin-right: 20px;
}
</style>
</head>
<body>
<h1>My Website
</h1>
<nav>
<ul>
<li><a href="#home">Home
</a></li>
<li><a href="#services">Services
</a></li>
<li><a href="#contact">Contact
</a></li>
</ul>
</nav>
</body>
</html>
Explanation:
<ul>
is used to create an unordered list of navigation links.<li>
and<a>
define individual menu items.
6. Simple Blog Layout
Concepts: Sections, articles,
headings.
Explanation:
This project shows how to create a simple blog page with multiple blog posts.
Each post is represented using an <article>
tag, and each has a title and content.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog
</title>
</head>
<body>
<header>
<h1>Welcome to My Blog
</h1>
</header>
<section>
<article>
<h2>First Blog Post
</h2>
<p>This is my first blog post. Stay tuned for more updates!
</p>
</article>
<article>
<h2>Second Blog Post
</h2>
<p>This is my second blog post. Thank you for reading!
</p>
</article>
</section>
</body>
</html>
Explanation:
<article>
defines each blog post.- The
<h2>
tag is used for post titles, and<p>
for the content.
7. Pricing Table
Concepts: Tables, images, links.
Explanation:
This project creates a pricing table for a service or product, where different
plans and their features are listed in a tabular format.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing
</title>
</head>
<body>
<h1>Pricing Plans
</h1>
<table border="1">
<tr>
<th>Plan
</th>
<th>Price
</th>
<th>Features
</th>
</tr>
<tr>
<td>Basic
</td>
<td>$19/month
</td>
<td>Basic features
</td>
</tr>
<tr>
<td>Premium
</td>
<td>$49/month
</td>
<td>Premium features
</td>
</tr>
</table>
</body>
</html>
Explanation:
<table>
: Used to display the pricing information in rows and columns.
8. Simple Login Form
Concepts: Forms, inputs, labels,
buttons.
Explanation: A
simple login form with fields for username and password, which requires both
fields to be filled before submission.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login
</title>
</head>
<body>
<h1>Login
</h1>
<form action="/submit" method="POST">
<label for="username">Username:
</label>
<input type="text" id="username" name="username" required><br><br>
<label for="password">Password:
</label>
<input type="password" id="password" name="password" required><br><br>
<button type="submit">Login
</button>
</form>
</body>
</html>
Explanation:
<input>
tags for collecting user input.required
attribute ensures the user fills out the fields before submitting.
9. Simple About Us Page
Concepts: Sections, paragraphs,
images, headings.
Explanation:
This project creates a simple "About Us" page for a company,
including a mission statement and company logo.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About Us
</title>
</head>
<body>
<header>
<h1>About Our Company
</h1>
</header>
<section>
<h2>Our Mission
</h2>
<p>We strive to provide the best service.
</p>
<img src="company-logo.jpg" alt="Company Logo" width="150">
</section>
</body>
</html>
Explanation:
<section>
: Used to group content such as the mission statement.<img>
: Embeds the company logo.
10. Product Page
Concepts: Product details,
images, links, buttons.
Explanation:
This project demonstrates a product details page. It includes product images, a
description, price, and a button to add the product to a cart.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product Page
</title>
</head>
<body>
<h1>Product Name
</h1>
<img src="product.jpg" alt="Product Image" width="300">
<p>Price: $29.99
</p>
<p>This is an amazing product that you will love!
</p>
<button>Add to Cart
</button>
</body>
</html>
Explanation:
<img>
: Displays a product image.<button>
: Represents an action button to add the product to the shopping cart.
11. Simple Newsletter Signup
Concepts: Forms, inputs, buttons,
labels.
Explanation:
This project allows users to sign up for a newsletter by entering their name
and email address.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Newsletter Signup
</title>
</head>
<body>
<h1>Subscribe to Our Newsletter
</h1>
<form action="/submit" method="POST">
<label for="name">Name:
</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:
</label>
<input type="email" id="email" name="email" required><br><br>
<button type="submit">Subscribe
</button>
</form>
</body>
</html>
Explanation:
<input>
: Captures user information (name, email).required
: Ensures fields are not empty before submitting.
12. Team Member Section
Concepts: Sections, lists,
images.
Explanation:
This project demonstrates how to showcase a team using images, names, and roles
in a list format.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Our Team
</title>
</head>
<body>
<h1>Meet Our Team
</h1>
<section>
<ul>
<li>
<img src="member1.jpg" alt="Team Member 1" width="100">
<h2>John Doe
</h2>
<p>Web Developer
</p>
</li>
<li>
<img src="member2.jpg" alt="Team Member 2" width="100">
<h2>Jane Smith
</h2>
<p>Designer
</p>
</li>
</ul>
</section>
</body>
</html>
Explanation:
<ul>
and<li>
: Creates a list of team members.<img>
: Displays a photo of each team member.
13. FAQ Section
Concepts: Lists, sections,
headings.
Explanation: A
Frequently Asked Questions (FAQ) page where questions are listed with answers.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ
</title>
</head>
<body>
<h1>Frequently Asked Questions
</h1>
<section>
<dl>
<dt>What is HTML?
</dt>
<dd>HTML stands for Hypertext Markup Language and is used to create webpages.
</dd>
<dt>How do I learn HTML?
</dt>
<dd>Start with the basics and practice building simple websites.
</dd>
</dl>
</section>
</body>
</html>
Explanation:
<dl>
,<dt>
, and<dd>
: Defines a description list with questions and their corresponding answers.
14. Simple Portfolio Page
Concepts: Sections, images,
links, styling.
Explanation: A
basic portfolio page that displays projects and personal information.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Portfolio
</title>
</head>
<body>
<header>
<h1>Welcome to My Portfolio
</h1>
</header>
<section>
<h2>Projects
</h2>
<ul>
<li><a href="project1.html">Project 1
</a></li>
<li><a href="project2.html">Project 2
</a></li>
</ul>
</section>
</body>
</html>
Explanation:
<ul>
and<li>
: Lists portfolio projects as clickable links.
15. Simple Calculator
Concepts: Forms, inputs,
JavaScript (optional for logic).
Explanation: A
simple calculator interface, where users can input numbers and see the result.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator
</title>
</head>
<body>
<h1>Simple Calculator
</h1>
<form>
<input type="number" id="num1" placeholder="Enter first number">
<input type="number" id="num2" placeholder="Enter second number">
<button type="button" onclick="calculate()">Add
</button>
</form>
<p id="result"></p>
<script>
function calculate() {
var num1 = document.getElementById('num1').value;
var num2 = document.getElementById('num2').value;
var result = parseInt(num1) + parseInt(num2);
document.getElementById('result').innerText = "Result: " + result;
}
</script>
</body>
</html>
Explanation:
- JavaScript: Handles the logic of adding
the two input numbers when the button is clicked.
16. Simple Sitemap
Concepts: Lists, links,
navigation.
Explanation:
This project uses a list to create a simple sitemap for a website.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sitemap
</title>
</head>
<body>
<h1>Website Sitemap
</h1>
<ul>
<li><a href="home.html">Home
</a></li>
<li><a href="about.html">About
</a></li>
<li><a href="services.html">Services
</a></li>
<li><a href="contact.html">Contact
</a></li>
</ul>
</body>
</html>
Explanation:
<ul>
and<li>
: Lists all the pages in the website as clickable links.
17. Simple Event Page
Concepts: Forms, inputs, buttons.
Explanation: An
event registration page that includes form elements to capture attendee
details.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Event Registration
</title>
</head>
<body>
<h1>Event Registration
</h1>
<form action="/submit" method="POST">
<label for="name">Full Name:
</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:
</label>
<input type="email" id="email" name="email" required><br><br>
<button type="submit">Register
</button>
</form>
</body>
</html>
Explanation:
<input>
: Captures user information for event registration.
18. Interactive To-Do List
Concepts: Forms, inputs,
JavaScript for interactivity.
Explanation: A
to-do list where users can add tasks dynamically.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do List
</title>
</head>
<body>
<h1>To-Do List
</h1>
<input type="text" id="taskInput" placeholder="Add new task">
<button onclick="addTask()">Add Task
</button>
<ul id="taskList"></ul>
<script>
function addTask() {
var task = document.getElementById('taskInput').value;
var li = document.createElement('li');
li.textContent = task;
document.getElementById('taskList').appendChild(li);
document.getElementById('taskInput').value = '';
}
</script>
</body>
</html>
Explanation:
- JavaScript: Adds a new task to the list
when the "Add Task" button is clicked.
19. Photo Gallery
Concepts: Images, grid layout.
Explanation: A
simple gallery page that arranges images in a grid.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Photo Gallery
</title>
<style>
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.gallery img {
width: 100%;
}
</style>
</head>
<body>
<h1>Photo Gallery
</h1>
<div class="gallery">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
</body>
</html>
Explanation:
- CSS Grid: Layouts the images in a
responsive grid.
20. Contact Form
Concepts: Forms, labels, inputs,
buttons.
Explanation: A
contact form that collects user feedback or inquiries.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Us
</title>
</head>
<body>
<h1>Contact Us
</h1>
<form action="/submit" method="POST">
<label for="name">Name:
</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:
</label>
<input type="email" id="email" name="email" required><br><br>
<label for="message">Message:
</label><br>
<textarea id="message" name="message" rows="4" required></textarea><br><br>
<button type="submit">Send Message
</button>
</form>
</body>
</html>
Explanation:
<textarea>
: Collects multi-line user input for the message.
1. Multi-Page Personal Portfolio
Concepts: Forms, Multimedia,
Sections, Links, Navigation
Description: A
personal portfolio website with multiple sections like Home, About, Projects,
Blog, and Contact. It uses multimedia content like images, videos, and embedded
maps.
- HTML Elements:
<nav>
,<section>
,<article>
,<header>
,<footer>
,<iframe>
,<video>
,<audio>
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Portfolio
</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
nav {
background-color: #333;
color: white;
padding: 10px;
}
nav a {
color: white;
text-decoration: none;
margin: 0 15px;
}
section {
padding: 20px;
margin: 20px 0;
}
footer {
background-color: #333;
color: white;
padding: 10px;
text-align: center;
}
</style>
</head>
<body>
<nav>
<a href="#about">About
</a>
<a href="#projects">Projects
</a>
<a href="#contact">Contact
</a>
</nav>
<header>
<h1>Welcome to My Portfolio
</h1>
<p>Explore my work and skills
</p>
</header>
<section id="about">
<h2>About Me
</h2>
<p>Hello! I am a web developer with a passion for coding and design.
</p>
<img src="profile.jpg" alt="Profile Picture" width="200">
</section>
<section id="projects">
<h2>Projects
</h2>
<article>
<h3>Project 1
</h3>
<p>This is a description of my first project. I used HTML, CSS, and JavaScript.
</p>
</article>
<article>
<h3>Project 2
</h3>
<p>This is a description of my second project. It includes multimedia content like videos.
</p>
<video width="300" controls>
<source src="project-video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</article>
</section>
<section id="contact">
<h2>Contact Me
</h2>
<p>You can reach me at
<a href="mailto:email@example.com">email@example.com
</a></p>
</section>
<footer>
<p>© 2024 My Portfolio
</p>
</footer>
</body>
</html>
Explanation:
- A multi-page structure using
navigation links.
- Embedded video in the project
section.
- A contact section with a mailto
link.
2. Online Resume
Concepts: Tables, Forms, Lists,
Semantic HTML
Description: An
advanced online resume page that uses HTML tables for structuring work
experience and skills, forms for a contact section, and lists for skills and
certifications.
- HTML Elements:
<table>
,<th>
,<td>
,<form>
,<ul>
,<li>
,<footer>
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Resume
</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 8px;
text-align: left;
}
</style>
</head>
<body>
<header>
<h1>John Doe's Resume
</h1>
<p>Web Developer with 5+ years of experience
</p>
</header>
<section>
<h2>Work Experience
</h2>
<table>
<tr>
<th>Job Title
</th>
<th>Company
</th>
<th>Year
</th>
<th>Description
</th>
</tr>
<tr>
<td>Frontend Developer
</td>
<td>Company A
</td>
<td>2019 - Present
</td>
<td>Building and maintaining responsive web pages.
</td>
</tr>
<tr>
<td>Web Designer
</td>
<td>Company B
</td>
<td>2017 - 2019
</td>
<td>Designing websites and ensuring UX/UI standards.
</td>
</tr>
</table>
</section>
<section>
<h2>Skills
</h2>
<ul>
<li>HTML5
</li>
<li>CSS3
</li>
<li>JavaScript
</li>
<li>React
</li>
</ul>
</section>
<section>
<h2>Contact
</h2>
<form action="/submit" method="POST">
<label for="message">Message:
</label>
<textarea id="message" name="message" rows="4" required></textarea><br><br>
<button type="submit">Send Message
</button>
</form>
</section>
<footer>
<p>© 2024 John Doe
</p>
</footer>
</body>
</html>
Explanation:
<table>
: Used to present work experience and job details in rows and columns.<form>
: Captures contact messages from users.
3. Interactive Image Gallery
Concepts: Responsive Layout,
Forms, Multimedia (Images), JavaScript (optional)
Description: A
gallery that displays images in a grid layout, where users can filter images
based on categories (e.g., nature, architecture). While this project is largely
HTML, JavaScript is optional for filtering functionality.
- HTML Elements:
<figure>
,<figcaption>
,<section>
,<img>
,<input>
,<button>
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Image Gallery
</title>
<style>
.gallery {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
.gallery img {
width: 100%;
border-radius: 8px;
}
</style>
</head>
<body>
<header>
<h1>Image Gallery
</h1>
<input type="text" id="search" placeholder="Search by category...">
<button onclick="filterImages()">Search
</button>
</header>
<section class="gallery">
<figure class="nature">
<img src="nature1.jpg" alt="Nature Image 1">
<figcaption>Nature 1
</figcaption>
</figure>
<figure class="architecture">
<img src="architecture1.jpg" alt="Architecture Image 1">
<figcaption>Architecture 1
</figcaption>
</figure>
<figure class="nature">
<img src="nature2.jpg" alt="Nature Image 2">
<figcaption>Nature 2
</figcaption>
</figure>
<figure class="architecture">
<img src="architecture2.jpg" alt="Architecture Image 2">
<figcaption>Architecture 2
</figcaption>
</figure>
</section>
<script>
function filterImages() {
let searchTerm = document.getElementById('search').value.toLowerCase();
let images = document.querySelectorAll('.gallery figure');
images.forEach(image => {
if (!image.classList.contains(searchTerm)) {
image.style.display = 'none';
} else {
image.style.display = 'block';
}
});
}
</script>
</body>
</html>
Explanation:
<figure>
and<figcaption>
: Used to associate images with captions in a gallery.- JavaScript enables image filtering
based on category.