24/01/2026

Semantic HTML & HTML Forms (Real Project Style)

Today we’ll learn:

1️⃣ Semantic HTML (Real-World Use)
2️⃣ HTML Forms (Real Form, Not Just Input)

1️⃣ Semantic HTML (Real-World Use)

❌ Wrong Way (Using Only div)


<div class="header"></div>
<div class="nav"></div>
<div class="main"></div>
<div class="footer"></div>

এভাবে করলে browser বা search engine বুঝতে পারে না কোন অংশ কী কাজ করছে।

✅ Correct Semantic Structure


<!DOCTYPE html>
<html>
<head>
  <title>Simple Website</title>
</head>
<body>

  <header>
    <h1>My Website</h1>
  </header>

  <nav>
    <a href="#">Home</a>
    <a href="#">About</a>
    <a href="#">Contact</a>
  </nav>

  <main>
    <section>
      <article>
        <h2>Blog Title</h2>
        <p>This is blog content.</p>
      </article>
    </section>

    <aside>
      <h3>Sidebar</h3>
      <p>Recent posts</p>
    </aside>
  </main>

  <footer>
    <p>© 2026 My Website</p>
  </footer>

</body>
</html>

🔍 Bangla Explanation (Simple Way)


🔹 <header> → ওয়েবসাইট বা সেকশনের উপরের অংশ। Logo, title, intro থাকে এখানে।
🔹 <nav> → Navigation menu। Home, About, Contact লিংক থাকে।
🔹 <main> → মূল কনটেন্টের জায়গা। একটা পেজে একটাই <main> হওয়া ভালো।
🔹 <section> → একটা আলাদা ব্লক বা অংশ। যেমন: Services section, Blog section।
🔹 <article> → স্বতন্ত্র কনটেন্ট। যেমন: Blog post, News article।
🔹 <aside> → Sidebar টাইপ কনটেন্ট। Related post, Ads, Info।
🔹 <footer> → নিচের অংশ। Copyright, contact info।

🎯 কেন এটা গুরুত্বপূর্ণ?

✔ SEO ভালো হয় ✔ Screen reader বুঝতে পারে ✔ Code clean হয় ✔ Real project standard

👉 Semantic HTML ব্যবহার করলে SEO ভালো হয়, accessibility ভালো হয় এবং code professional হয়।


2️⃣ HTML Forms (Real Form, Not Just Input)

অনেকেই শুধু input শেখে। কিন্তু real project এ form structure খুব গুরুত্বপূর্ণ।

✅ Real Contact Form Example


<section>
  <h2>Contact Us</h2>

  <form action="/submit" method="POST">

    <div>
      <label for="name">Full Name</label>
      <input type="text" id="name" name="fullname" required>
    </div>

    <div>
      <label for="email">Email</label>
      <input type="email" id="email" name="email" required>
    </div>

    <div>
      <label for="message">Message</label>
      <textarea id="message" name="message" required></textarea>
    </div>

    <button type="submit">Send Message</button>

  </form>
</section>

name → backend এ ডাটা পাঠাতে প্রয়োজন
required → basic validation

Code Explain

🔹<form action="" method=""></form> [ জানা ভালো কিন্তু এটি ব্যাকএন্ডের জন্য ব্যবহার করা হয়]

🔹 label + for

    
      <label for="email">Email</label>
      <input id="email">
    
  

এটা accessibility এর জন্য খুব গুরুত্বপূর্ণ। User label এ ক্লিক করলে input focus হবে।

🔹 name attribute

  
    <input name="email"> 
  

Backend এ ডাটা পাঠাতে হলে name দরকার। name না দিলে server ডাটা পাবে না।

🔹 required

User empty রাখলে form submit হবে না। Basic validation হয়ে যায়।

🎯 Real Project Understanding

✔ Login form
✔ Contact form
✔ Registration form

সব জায়গায় এই structure ব্যবহার হয়।


🚀 Practice Task

Semantic layout দিয়ে একটি simple blog page বানাও
নিচে একটি contact form যোগ করো