🌐 ইন্টারনেট কীভাবে কাজ করে — সম্পূর্ণ নোট
এই সেকশনে ইন্টারনেটের মূল ধারণা, কীভাবে ডেটা যায় আসে এবং এর পেছনের প্রযুক্তি সহজ ভাষায় বোঝানো হয়েছে।
🔷 ইন্টারনেট কী?
ইন্টারনেট হলো বিশ্বের কোটি কোটি কম্পিউটার, ফোন এবং ডিভাইসের একটি বিশাল নেটওয়ার্ক — যেগুলো একে অপরের সাথে যুক্ত এবং তথ্য আদান-প্রদান করতে পারে।
সহজ ভাষায় বলতে গেলে — ইন্টারনেট হলো একটা বিশ্বব্যাপী মহাসড়ক, আর ডেটা হলো সেই রাস্তায় চলা গাড়ি।
🔷 ইন্টারনেট কীভাবে কাজ করে?
তুমি যখন ব্রাউজারে google.com লিখে Enter চাপো, তখন পেছনে অনেক কিছু ঘটে। ধাপগুলো দেখো:
ধাপ ১ — তুমি Request পাঠাও Client
তোমার কম্পিউটার বা ফোন হলো Client। তুমি ব্রাউজারে
google.com লিখলে তোমার ডিভাইস গুগলের সার্ভারের কাছে বলে —
"আমাকে google.com পেজটা দাও।"
ধাপ ২ — DNS ঠিকানা খুঁজে বের করে DNS Lookup
কম্পিউটার google.com নাম চেনে না — সে চেনে IP Address
(যেমন: 142.250.190.46)। তাই প্রথমে DNS সার্ভার-এর কাছে
জিজ্ঞেস করে — "google.com মানে কোন IP?"
ধাপ ৩ — Server Response দেয় Server
IP পাওয়ার পর তোমার ডিভাইস সরাসরি গুগলের সার্ভারে request পাঠায়। সার্ভার তখন HTML, CSS, JavaScript ফাইল পাঠিয়ে দেয় — এটাই Response।
ধাপ ৪ — ব্রাউজার পেজ দেখায় Render
সার্ভার থেকে পাওয়া ফাইলগুলো ব্রাউজার পড়ে এবং তোমার সামনে সুন্দর পেজ হিসেবে দেখায়। এই পুরো প্রক্রিয়া সাধারণত ১ সেকেন্ডেরও কম সময়ে হয়।
🔷 গুরুত্বপূর্ণ ধারণাগুলো
1. IP Address কী? IP Address
ইন্টারনেটে প্রতিটি ডিভাইসের একটি unique ঠিকানা থাকে — এটাই IP Address। ঠিক যেমন বাড়ির ডাক ঠিকানা থাকলে চিঠি পাঠানো যায়।
2. DNS কী? DNS
DNS (Domain Name System) হলো ইন্টারনেটের ফোনবুক।
মানুষ facebook.com মনে রাখতে পারে, কিন্তু 157.240.221.35
মনে রাখা কঠিন — DNS এই কাজটা করে দেয়।
3. HTTP ও HTTPS কী? Protocol
HTTP হলো Client ও Server-এর মধ্যে কথা বলার নিয়ম। HTTPS হলো সেই নিয়মের সুরক্ষিত সংস্করণ — ডেটা এনক্রিপ্টেড থাকে, তাই কেউ মাঝখান থেকে পড়তে পারে না।
https:// নেই সেখানে
পাসওয়ার্ড বা ব্যাংক তথ্য দিও না — ডেটা চুরি হতে পারে।
4. Packet কী? Packet
ইন্টারনেটে ডেটা একসাথে পাঠানো হয় না। বরং ছোট ছোট টুকরায় ভেঙে পাঠানো হয় — এগুলোকে Packet বলে। গন্তব্যে পৌঁছে সব Packet আবার জোড়া লেগে পুরো ডেটা তৈরি হয়।
🔷 Client-Server মডেল
ইন্টারনেটের পুরো কাজ মূলত দুই পক্ষের মধ্যে:
| পক্ষ | কে? | কাজ | উদাহরণ |
|---|---|---|---|
| Client | তোমার ডিভাইস | Request পাঠায়, Response দেখায় | Chrome, Firefox, Safari |
| Server | ওয়েবসাইটের কম্পিউটার | Request নেয়, ফাইল পাঠায় | Google, Facebook-এর সার্ভার |
🔷 ইন্টারনেট কীসের উপর দিয়ে চলে?
ইন্টারনেট মূলত তিনটি মাধ্যমে চলে:
1. Fiber Optic Cable তার
সমুদ্রের তলা দিয়ে বিছানো হাজার হাজার কিলোমিটার লম্বা আলোর তার। এই তারেই বিশ্বের এক দেশ থেকে আরেক দেশে ডেটা যায় — আলোর গতিতে।
2. WiFi বেতার
Router থেকে বেতার তরঙ্গের মাধ্যমে ডিভাইসে ইন্টারনেট পৌঁছায়। তার ছাড়াই কাজ করে — তবে দূরত্ব বাড়লে গতি কমে।
3. Mobile Data (4G / 5G) মোবাইল
মোবাইল টাওয়ার থেকে রেডিও তরঙ্গে সরাসরি ফোনে ইন্টারনেট আসে। বাংলাদেশে বর্তমানে 4G সবচেয়ে বেশি ব্যবহৃত।
🔷 দ্রুত রেফারেন্স — গুরুত্বপূর্ণ শব্দগুলো
| শব্দ | পুরো নাম | সহজ মানে |
|---|---|---|
| Internet | Interconnected Network | বিশ্বের সব ডিভাইসের নেটওয়ার্ক |
| WWW | World Wide Web | ইন্টারনেটের ওয়েবসাইটের অংশ |
| IP | Internet Protocol | ডিভাইসের ইন্টারনেট ঠিকানা |
| DNS | Domain Name System | নামকে IP-তে রূপান্তর করে |
| HTTP | HyperText Transfer Protocol | Client-Server কথা বলার নিয়ম |
| HTTPS | HTTP Secure | নিরাপদ এনক্রিপ্টেড সংস্করণ |
| Client | — | যে request করে (ব্রাউজার) |
| Server | — | যে response দেয় (ওয়েবসাইটের কম্পিউটার) |
| Packet | — | ডেটার ছোট টুকরা |
| Bandwidth | — | একবারে কতটুকু ডেটা যেতে পারে |
🎨 Frontend Development — Markup Languages
এই সেকশনে Frontend Development কী, Markup Language কী এবং কীভাবে একটি ওয়েবপেজ তৈরি হয় তা বিস্তারিত বোঝানো হয়েছে।
🔷 Frontend Development কী?
Frontend Development হলো ওয়েবসাইটের যে অংশ ব্যবহারকারী সরাসরি দেখতে এবং ব্যবহার করতে পারে — সেটি তৈরি করার কাজ। বোতাম, মেনু, রঙ, ছবি, লেখা — সব কিছুই Frontend।
Frontend-এর তিনটি মূল ভাষা:
| ভাষা | পুরো নাম | কাজ | উদাহরণ |
|---|---|---|---|
| HTML | HyperText Markup Language | পেজের কাঠামো তৈরি | শিরোনাম, প্যারাগ্রাফ, বোতাম |
| CSS | Cascading Style Sheets | পেজের ডিজাইন ও রঙ | রঙ, ফন্ট, সাইজ, লেআউট |
| JavaScript | JavaScript | পেজকে interactive করা | বোতাম চাপলে কিছু হওয়া |
🔷 Markup Language কী?
Markup Language হলো এমন একটি ভাষা যেখানে বিশেষ চিহ্ন বা ট্যাগ ব্যবহার করে কম্পিউটারকে বলা হয় — "এই লেখাটা শিরোনাম", "এটা প্যারাগ্রাফ", "এটা ছবি"।
Markup Language কোনো Programming Language নয় — এখানে কোনো গণনা, লজিক বা সিদ্ধান্ত নেওয়া হয় না। শুধু কনটেন্টের গঠন ও অর্থ বোঝানো হয়।
Markup কীভাবে কাজ করে:
🔷 HTML — Web-এর মূল Markup Language
HTML নামের অর্থ:
একটি HTML ফাইলের মূল কাঠামো:
<head> = বইয়ের প্রচ্ছদ (তথ্য আছে কিন্তু গল্প নেই) |
<body> = বইয়ের ভেতরের পাতা (আসল কনটেন্ট)
🔷 HTML ট্যাগের গঠন
সাধারণ ট্যাগ (Opening + Closing): Regular Tag
Self-Closing ট্যাগ (নিজেই বন্ধ হয়): Self-Closing
Attribute — ট্যাগের অতিরিক্ত তথ্য: Attribute
<a href="..."> → 'a' ট্যাগের href বৈশিষ্ট্য।
🔷 অন্যান্য Markup Language
HTML ছাড়াও আরও কিছু পরিচিত Markup Language আছে:
| ভাষা | কোথায় ব্যবহার হয় | উদাহরণ |
|---|---|---|
| HTML | ওয়েবপেজ তৈরি | সব ওয়েবসাইট |
| XML | ডেটা আদান-প্রদান | API, কনফিগ ফাইল |
| Markdown | সহজে ডকুমেন্ট লেখা | GitHub README, Notion |
| SVG | ভেক্টর গ্রাফিক্স | লোগো, আইকন |
🔷 দ্রুত রেফারেন্স — সব ধারণা এক নজরে
| ধারণা | মানে | সহজ উদাহরণ |
|---|---|---|
| Frontend | ব্যবহারকারী যা দেখে | ওয়েবসাইটের বোতাম, মেনু, রঙ |
| Backend | পেছনের কাজ | ডেটাবেজ, সার্ভার লজিক |
| Markup Language | ট্যাগ দিয়ে কনটেন্ট চিহ্নিত করা | HTML, XML, Markdown |
| HTML | ওয়েবপেজের কাঠামো | শিরোনাম, প্যারাগ্রাফ, ছবি |
| Tag | HTML-এর চিহ্ন | <h1>, <p>, <img> |
| Attribute | ট্যাগের অতিরিক্ত তথ্য | href, src, alt |
| <head> | পেজের তথ্য (দেখা যায় না) | title, charset, meta |
| <body> | পেজের মূল কনটেন্ট | সব লেখা, ছবি, বোতাম |
🛠️ তোমার প্রথম HTML ফাইল
এই সেকশনে VSCode সেটআপ, প্রথম HTML ফাইল তৈরি এবং Basic ট্যাগগুলো কমেন্টসহ বোঝানো হয়েছে।
🔷 VSCode কী?
VSCode (Visual Studio Code) হলো Microsoft-এর তৈরি একটি ফ্রি Code Editor — যেখানে তুমি HTML, CSS, JavaScript সহ যেকোনো ভাষায় কোড লিখতে পারবে।
🔷 VSCode সেটআপ — ধাপে ধাপে
ধাপ ১ — ডাউনলোড করো Download
ব্রাউজারে যাও এবং ডাউনলোড করো:
ধাপ ২ — ইনস্টল করো Install
ডাউনলোড হওয়া ফাইলে ডাবল ক্লিক করো এবং ইনস্টল করো। ইনস্টলের সময় এই দুটো অপশন অবশ্যই চেক করো:
ধাপ ৩ — Prettier Extension ইনস্টল করো Extension
VSCode খুলে বাম পাশের Extensions আইকনে ক্লিক করো এবং সার্চ করো:
🔷 প্রথম HTML ফাইল তৈরি করো
ধাপ ১ — Project ফোল্ডার তৈরি করো Folder
ধাপ ২ — VSCode-এ ফোল্ডার খোলো Open Folder
ধাপ ৩ — HTML ফাইল তৈরি করো New File
ধাপ ৪ — HTML Boilerplate তৈরি করো Boilerplate
index.html ফাইল খুলে ! টাইপ করো,
তারপর Enter চাপো — VSCode স্বয়ংক্রিয়ভাবে পুরো কাঠামো তৈরি করে দেবে।
lang="en" পরিবর্তন করে lang="bn" লিখো।
এটা স্ক্রিন রিডার ও Search Engine-কে সঠিক তথ্য দেয়।
ধাপ ৫ — ব্রাউজারে দেখো Live Server
🔷 Boilerplate-এর প্রতিটি লাইন বোঝো
| লাইন | কাজ | দরকার কি? |
|---|---|---|
<!DOCTYPE html> |
ব্রাউজারকে বলে "এটি HTML5 ফাইল" | ✅ অবশ্যই |
<html lang="bn"> |
পুরো পেজের ভাষা বাংলা বলে জানায় | ✅ অবশ্যই |
<meta charset="UTF-8"> |
বাংলাসহ সব ভাষার অক্ষর সাপোর্ট করে | ✅ অবশ্যই |
<meta name="viewport"...> |
মোবাইলে সঠিকভাবে দেখানোর জন্য | ✅ অবশ্যই |
<title> |
ব্রাউজারের ট্যাবে যে নাম দেখায় | ✅ অবশ্যই |
<head> |
পেজের তথ্য রাখার জায়গা (দেখা যায় না) | ✅ অবশ্যই |
<body> |
পেজের মূল কনটেন্ট (এটাই দেখা যায়) | ✅ অবশ্যই |
🔷 Basic HTML ট্যাগগুলো
এগুলো HTML-এর সবচেয়ে বেশি ব্যবহৃত ট্যাগ — প্রতিটি ওয়েবপেজেই থাকে।
1. Heading ট্যাগ — শিরোনাম h1 – h6
2. Paragraph ট্যাগ — অনুচ্ছেদ <p>
3. Link ট্যাগ — লিংক <a>
4. Image ট্যাগ — ছবি <img>
alt ছাড়া ছবি দিলে স্ক্রিন রিডার ও Google বুঝতে পারে না।
ছবির বিষয়বস্তু সংক্ষেপে লিখো।
5. List ট্যাগ — তালিকা <ul> <ol>
6. div ও span — কনটেন্ট গ্রুপিং করা <div> <span>
<div> নতুন লাইনে শুরু হয় (block),
<span> একই লাইনে থাকে (inline)।
🔷 সম্পূর্ণ প্রথম HTML পেজের কোড
এখন সব Basic ট্যাগ একসাথে ব্যবহার করে একটি পূর্ণ পেজ বানাই:
🔷 দ্রুত রেফারেন্স — Basic ট্যাগ এক নজরে
| ট্যাগ | কাজ | Closing ট্যাগ? | কোথায় ব্যবহার |
|---|---|---|---|
<h1>–<h6> |
শিরোনাম | ✅ হ্যাঁ | টাইটেল, সেকশন নাম |
<p> |
অনুচ্ছেদ | ✅ হ্যাঁ | সাধারণ লেখা |
<a> |
লিংক | ✅ হ্যাঁ | অন্য পেজে যেতে |
<img> |
ছবি | ❌ না | ছবি দেখাতে |
<ul> |
বুলেট তালিকা | ✅ হ্যাঁ | নম্বর ছাড়া তালিকা |
<ol> |
নম্বরওয়ালা তালিকা | ✅ হ্যাঁ | ধাপ বা ক্রম বোঝাতে |
<li> |
তালিকার আইটেম | ✅ হ্যাঁ | ul বা ol এর ভেতরে |
<div> |
ব্লক কনটেইনার | ✅ হ্যাঁ | সেকশন তৈরিতে |
<span> |
ইনলাইন কনটেইনার | ✅ হ্যাঁ | লেখার মধ্যে অংশ আলাদা করতে |
<br> |
লাইন ব্রেক | ❌ না | নতুন লাইনে যেতে |
<hr> |
বিভাজক রেখা | ❌ না | দুই অংশ আলাদা করতে |
📜 HTML লেখার নিয়মকানুন
ট্যাগ, অ্যাট্রিবিউট, কেস ইনসেনসিটিভিটি, HTML Entities, কমেন্ট এবং Whitespace — HTML-এর ভেতরের জরুরি সব নিয়ম একসাথে।
🔷 Tag এবং Attribute
ট্যাগের দুটি ধরন Tag Types
Attribute — ট্যাগের অতিরিক্ত তথ্য Attribute
" " Double Quote-এর ভেতরে রাখতে হয়।
সবচেয়ে বেশি ব্যবহৃত Attribute:
| Attribute | কোন ট্যাগে | কাজ |
|---|---|---|
href |
<a> |
লিংকের ঠিকানা |
src |
<img>, <script> |
ফাইলের ঠিকানা |
alt |
<img> |
ছবির বিকল্প লেখা |
id |
যেকোনো ট্যাগে | Unique পরিচয় (পেজে একটাই) |
class |
যেকোনো ট্যাগে | গ্রুপ পরিচয় (একাধিকবার) |
style |
যেকোনো ট্যাগে | সরাসরি CSS দিতে |
title |
যেকোনো ট্যাগে | Hover করলে tooltip দেখায় |
target |
<a> |
লিংক কোথায় খুলবে |
🔷 Case Insensitivity — বড় হাতের/ছোট হাতের লেখা
HTML Case Insensitive — মানে ট্যাগ বড় হাতের/ছোট হাতের যে কোনো ভাবে লিখলে ব্রাউজার বুঝতে পারে।
| লেখার ধরন | উদাহরণ | কাজ করে? | ব্যবহার করবো? |
|---|---|---|---|
| ছোট হাতের (lowercase) | <h1> |
✅ হ্যাঁ | ✅ সবসময় |
| বড় হাতের (uppercase) | <H1> |
✅ হ্যাঁ | ❌ না |
| মিশ্র (mixed) | <H1> |
✅ হ্যাঁ | ❌ না |
🔷 HTML Entities — বিশেষ চিহ্ন লেখার উপায়
HTML-এ কিছু চিহ্ন সরাসরি লেখা যায় না — কারণ ব্রাউজার সেগুলোকে ট্যাগ বা বিশেষ কোড মনে করে। তখন HTML Entity ব্যবহার করতে হয়।
Entity-এর গঠন:
সবচেয়ে বেশি ব্যবহৃত Entities:
| চিহ্ন | Entity কোড | নম্বর কোড | কখন দরকার |
|---|---|---|---|
| < (less than) | < |
< |
HTML কোড লেখার সময় |
| > (greater than) | > |
> |
HTML কোড লেখার সময় |
| & (ampersand) | & |
& |
"এবং" চিহ্ন লিখতে |
| (space) | |
  |
বাড়তি ফাঁকা জায়গা দিতে |
| " (double quote) | " |
" |
Attribute-এর ভেতরে quote লিখতে |
| ' (apostrophe) | ' |
' |
Single quote লিখতে |
| © (copyright) | © |
© |
কপিরাইট চিহ্ন |
| ® (registered) | ® |
® |
Registered trademark |
| → (arrow) | → |
→ |
ডানে তীর চিহ্ন |
| ★ (star) | ★ |
★ |
তারার চিহ্ন |
রিয়েল উদাহরণ:
& দিয়ে শুরু হয় এবং ; (সেমিকোলন) দিয়ে শেষ হয়।
সেমিকোলন ভুলে গেলে Entity কাজ করবে না।
🔷 HTML Comments — কমেন্ট লেখার নিয়ম
Comment হলো কোডের ভেতরে নোট লেখার জায়গা। ব্রাউজার Comment পড়ে না — পেজে দেখায় না। শুধু কোড দেখার সময় তুমি দেখতে পাবে।
Comment-এর গঠন:
Comment-এর বিভিন্ন ব্যবহার:
🔷 Whitespace — HTML-এ ফাঁকা জায়গার নিয়ম
HTML-এ Whitespace মানে Space, Tab এবং নতুন লাইন। তুমি কোডে যতই ফাঁকা জায়গা দাও না কেন, ব্রাউজার সবসময় শুধু একটাই Space দেখায়।
Whitespace কীভাবে কাজ করে: দেখো
Whitespace সমস্যার সমাধান: Solution
Whitespace তুলনার চার্ট:
| কোডে যা লিখলে | ব্রাউজারে যা দেখায় | সমাধান |
|---|---|---|
| অনেক Space | একটাই Space | ব্যবহার করো |
| কোডে নতুন লাইন | Space হিসেবে দেখায় | <br> ব্যবহার করো |
| Tab চাপা | একটাই Space | ব্যবহার করো |
| নতুন অনুচ্ছেদ | Space হিসেবে দেখায় | নতুন <p> ব্যবহার করো |
| হুবহু ফরম্যাট চাই | — | <pre> ব্যবহার করো |
🔷 দ্রুত রেফারেন্স — সব নিয়ম এক নজরে
| বিষয় | নিয়ম | উদাহরণ |
|---|---|---|
| Tag | সবসময় ছোট হাতের লিখবে | <h1> ✅ <H1> ❌ |
| Attribute | Opening Tag-এ, Value " "-এ | <a href="..."> |
| Case | Case Insensitive, তবে lowercase লিখবে | <p> = <P> |
| Entity | & দিয়ে শুরু, ; দিয়ে শেষ |
< → < |
| Comment | <!-- দিয়ে শুরু, --> দিয়ে শেষ |
<!-- নোট --> |
| Whitespace | যতই দাও, একটাই Space দেখায় | বাড়তি Space চাইলে |
📚 HTML Headings — সম্পূর্ণ নোট
এই ফাইলে HTML-এর সব হেডিং ট্যাগ (h1 থেকে h6) উদাহরণসহ বোঝানো হয়েছে।
🔷 HTML Heading কী?
HTML-এ Heading মানে শিরোনাম। বইয়ে যেমন অধ্যায়ের নাম থাকে, ওয়েবপেজেও বিভিন্ন অংশের নাম বোঝাতে Heading ব্যবহার হয়।
মোট ৬টি হেডিং ট্যাগ আছে:
<h1>— সবচেয়ে বড় ও গুরুত্বপূর্ণ<h2>— দ্বিতীয় গুরুত্বপূর্ণ<h3>— তৃতীয়<h4>— চতুর্থ<h5>— পঞ্চম<h6>— সবচেয়ে ছোট
🔷 প্রতিটি Heading দেখতে কেমন
এটি h1 ট্যাগ h1 — মেইন টাইটেল
এটি h2 ট্যাগ h2 — সেকশন
এটি h3 ট্যাগ h3 — উপসেকশন
এটি h4 ট্যাগ h4 — বিষয়
এটি h5 ট্যাগ h5 — ছোট লেবেল
এটি h6 ট্যাগ h6 — সাইডনোট
🔷 সাইজ তুলনার চার্ট
| ট্যাগ | ডিফল্ট সাইজ | কোথায় ব্যবহার | পেজে কতবার? |
|---|---|---|---|
<h1> |
~32px | পেজের মেইন টাইটেল | শুধু ১ বার |
<h2> |
~24px | বড় সেকশন | যত দরকার |
<h3> |
~19px | সেকশনের উপবিভাগ | যত দরকার |
<h4> |
~16px | ছোট বিষয় বা পয়েন্ট | যত দরকার |
<h5> |
~13px | লেবেল, ক্যাটাগরি | কম |
<h6> |
~11px | সূত্র, নোট | খুব কম |
🔷 গুরুত্বপূর্ণ নিয়ম ও সতর্কতা
<h1> ট্যাগ ব্যবহার করো।
font-size দাও।
🔷 বইয়ের সাথে তুলনা
| HTML Heading | বইয়ের মতো করলে |
|---|---|
<h1> |
📗 বইয়ের নাম |
<h2> |
📑 অধ্যায়ের নাম |
<h3> |
📄 অনুচ্ছেদের শিরোনাম |
<h4> |
🔹 ছোট পয়েন্টের শিরোনাম |
<h5> |
🔸 উপ-পয়েন্ট |
<h6> |
📌 পাদটীকা |
📚 HTML Paragraph — সম্পূর্ণ নোট
এই ফাইলে HTML-এর Paragraph ট্যাগ এবং সংশ্লিষ্ট ট্যাগগুলো উদাহরণসহ বোঝানো হয়েছে।
🔷 HTML Paragraph কী?
HTML-এ <p> ট্যাগ দিয়ে অনুচ্ছেদ (paragraph) লেখা হয়। ওয়েবপেজের যেকোনো সাধারণ লেখা <p> ট্যাগের ভেতরে রাখতে হয়।
ব্রাউজার প্রতিটি <p> ট্যাগের পরে স্বয়ংক্রিয়ভাবে
একটু ফাঁকা জায়গা (margin) তৈরি করে — আলাদা করে <br>
দিতে হয় না।
সিনট্যাক্স (লেখার নিয়ম):
🔷 সহজ উদাহরণ
একটি Paragraph:
একাধিক Paragraph:
🔷 Paragraph-এর সাথে যে ট্যাগগুলো ব্যবহার হয়
1. <br> ট্যাগ — লাইন ব্রেক Line Break
একই <p>-এর ভেতরে নতুন লাইনে যেতে চাইলে <br> ব্যবহার করো।
2. <hr> ট্যাগ — বিভাজক রেখা Horizontal Rule
দুটো অংশের মাঝে একটা আড়াআড়ি রেখা দেখাতে <hr> ব্যবহার করো।
3. <pre> ট্যাগ — হুবহু ফরম্যাট ধরে রাখে Preformatted
<pre> ট্যাগে লেখা হুবহু যেভাবে টাইপ করবে সেভাবে দেখাবে — স্পেস ও নতুন লাইনসহ।
🔷 Paragraph-এর ভেতরে Text Formatting ট্যাগ
<p> ট্যাগের ভেতরে লেখার ধরন পরিবর্তন করতে নিচের ট্যাগগুলো ব্যবহার করা যায়:
| ট্যাগ | কাজ | উদাহরণ কোড | আউটপুট |
|---|---|---|---|
<strong> |
গুরুত্বপূর্ণ / Bold | <strong>গুরুত্বপূর্ণ</strong> |
গুরুত্বপূর্ণ |
<em> |
জোর দেওয়া / Italic | <em>বিশেষ লেখা</em> |
বিশেষ লেখা |
<b> |
শুধু Bold দেখাতে | <b>মোটা লেখা</b> |
মোটা লেখা |
<i> |
শুধু Italic দেখাতে | <i>বাঁকা লেখা</i> |
বাঁকা লেখা |
<u> |
আন্ডারলাইন | <u>দাগানো লেখা</u> |
দাগানো লেখা |
<mark> |
হাইলাইট করা | <mark>হাইলাইট</mark> |
হাইলাইট |
<small> |
ছোট লেখা | <small>ছোট লেখা</small> |
ছোট লেখা |
<del> |
মুছে ফেলা লেখা | <del>পুরনো দাম</del> |
|
<ins> |
নতুন যোগ করা | <ins>নতুন দাম</ins> |
নতুন দাম |
<sup> |
উপরে ছোট লেখা | x<sup>2</sup> |
x2 |
<sub> |
নিচে ছোট লেখা | H<sub>2</sub>O |
H2O |
🔷 রিয়েল উদাহরণ — একটি ব্লগ পোস্ট
নিচে একটা ব্লগ আর্টিকেলের কাঠামো দেখানো হলো যেখানে সব ট্যাগ একসাথে ব্যবহার হয়েছে:
🔷 গুরুত্বপূর্ণ নিয়ম ও সতর্কতা
ব্যবহার করো।
<p> ট্যাগ ব্যবহার করো — এটি সঠিক পদ্ধতি।
<p> শুরু করলে </p> দিয়ে বন্ধ করতে হবে।
তবে <br> এবং <hr> self-closing — এদের closing ট্যাগ লাগে না।
<strong> এবং <b>
দুটোই Bold দেখায়, কিন্তু <strong> বেশি ভালো — কারণ এটি
স্ক্রিন রিডারকে বলে "এটি গুরুত্বপূর্ণ লেখা"।
<em> এবং <i>
দুটোই Italic দেখায়, কিন্তু <em> বেশি ভালো — কারণ এটি
মানে বোঝায় "এই লেখায় জোর দাও"।
<pre> ব্যবহার করো — এটি তোমার স্পেস ও লাইন হুবহু ধরে রাখে।
🔷 দ্রুত রেফারেন্স — সব ট্যাগ এক নজরে
| ট্যাগ | পুরো নাম | কাজ | Closing ট্যাগ? |
|---|---|---|---|
<p> |
Paragraph | অনুচ্ছেদ লেখা | ✅ হ্যাঁ |
<br> |
Line Break | নতুন লাইন | ❌ না |
<hr> |
Horizontal Rule | বিভাজক রেখা | ❌ না |
<pre> |
Preformatted | হুবহু ফরম্যাট ধরে রাখা | ✅ হ্যাঁ |
<strong> |
Strong | গুরুত্বপূর্ণ / Bold | ✅ হ্যাঁ |
<em> |
Emphasis | জোর দেওয়া / Italic | ✅ হ্যাঁ |
<b> |
Bold | শুধু মোটা দেখানো | ✅ হ্যাঁ |
<i> |
Italic | শুধু বাঁকা দেখানো | ✅ হ্যাঁ |
<u> |
Underline | আন্ডারলাইন | ✅ হ্যাঁ |
<mark> |
Mark | হাইলাইট করা | ✅ হ্যাঁ |
<small> |
Small | ছোট লেখা | ✅ হ্যাঁ |
<del> |
Delete | মুছে ফেলা (দাগ) | ✅ হ্যাঁ |
<ins> |
Insert | নতুন যোগ করা | ✅ হ্যাঁ |
<sup> |
Superscript | উপরে ছোট লেখা (x²) | ✅ হ্যাঁ |
<sub> |
Subscript | নিচে ছোট লেখা (H₂O) | ✅ হ্যাঁ |
🔗 Links এবং Text Formatting
এই সেকশনে HTML-এর Link ট্যাগ ও Text Formatting ট্যাগগুলো বিস্তারিত কমেন্টসহ বোঝানো হয়েছে।
🔷 HTML Links — লিংক কী?
HTML-এ <a> (Anchor) ট্যাগ দিয়ে লিংক তৈরি করা হয়। লিংকে ক্লিক করলে অন্য পেজ, সেকশন বা ফাইলে যাওয়া যায়।
Link-এর মূল গঠন:
🔷 Link-এর বিভিন্ন ধরন
1. External Link — বাইরের ওয়েবসাইটে যাওয়া External
rel="noopener noreferrer" যোগ করো।
না দিলে খোলা সাইট তোমার পেজের তথ্য অ্যাক্সেস করতে পারে।
2. Internal Link — একই সাইটের অন্য পেজে যাওয়া Internal
3. Anchor Link — একই পেজের অন্য সেকশনে যাওয়া Anchor
4. Email ও Phone Link — সরাসরি ইমেইল বা কল Mail & Tel
5. Download Link — ফাইল ডাউনলোড করা Download
🔷 Link-এর সব গুরুত্বপূর্ণ Attribute
| Attribute | কাজ | উদাহরণ |
|---|---|---|
href |
গন্তব্যের ঠিকানা | href="https://google.com" |
target="_blank" |
নতুন ট্যাবে খোলে | target="_blank" |
target="_self" |
একই ট্যাবে খোলে (ডিফল্ট) | target="_self" |
rel |
নিরাপত্তা ও SEO সম্পর্ক | rel="noopener noreferrer" |
title |
Hover করলে tooltip | title="গুগলে যাও" |
download |
ফাইল ডাউনলোড করে | download="file.pdf" |
🔷 Text Formatting — লেখার ধরন পরিবর্তন
Text Formatting ট্যাগ দিয়ে লেখাকে Bold, Italic, Underline বা Highlighted করা যায়।
<strong> মানে "গুরুত্বপূর্ণ" — স্ক্রিন রিডার জোরে পড়ে।
<b> মানে শুধু "মোটা দেখাও" — কোনো বিশেষ অর্থ নেই।
সম্ভব হলে সবসময় Semantic ট্যাগ ব্যবহার করো।
🔷 Semantic Formatting ট্যাগ — অর্থ বহন করে
1. <strong> — গুরুত্বপূর্ণ লেখা Semantic Bold
আউটপুট: সতর্কতা: পাসওয়ার্ড কাউকে দেবেন না।
2. <em> — জোর দেওয়া লেখা Semantic Italic
আউটপুট: তুমি অবশ্যই আজকের কাজ শেষ করবে।
3. <mark> — হাইলাইট করা Highlight
আউটপুট: পরীক্ষায় সৃজনশীল প্রশ্ন থেকে বেশি আসে।
4. <del> এবং <ins> — সম্পাদনা দেখানো Edit
আউটপুট: মূল্য: ১,০০০ টাকা ৮০০ টাকা
5. <small> — ছোট লেখা Small
আউটপুট: আমাদের পণ্য কিনুন। * শর্ত প্রযোজ্য।
6. <sub> এবং <sup> — নিচে ও উপরে ছোট লেখা Sub & Sup
আউটপুট: H2O | a2 + b2 = c2
🔷 Presentational Formatting ট্যাগ — শুধু দেখতে পরিবর্তন
| Semantic ট্যাগ | Presentational ট্যাগ | দেখতে | কোনটা ব্যবহার করবো? |
|---|---|---|---|
<strong> |
<b> |
মোটা | ✅ <strong> |
<em> |
<i> |
বাঁকা | ✅ <em> |
<del> |
<s> |
✅ <del> |
🔷 রিয়েল উদাহরণ — ব্লগ কার্ড
Links ও Text Formatting একসাথে ব্যবহার করে একটি ব্লগ কার্ড বানাই:
🔷 দ্রুত রেফারেন্স — সব ট্যাগ এক নজরে
| ট্যাগ | কাজ | আউটপুট | কোথায় ব্যবহার |
|---|---|---|---|
<a href="..."> |
লিংক তৈরি | লিংক | নেভিগেশন, বোতাম |
<strong> |
গুরুত্বপূর্ণ / Bold | গুরুত্বপূর্ণ | সতর্কতা, জরুরি তথ্য |
<em> |
জোর দেওয়া / Italic | জোর দেওয়া | বিশেষ শব্দ, উদ্ধৃতি |
<mark> |
হাইলাইট | হাইলাইট | গুরুত্বপূর্ণ অংশ |
<del> |
মুছে ফেলা লেখা | পুরনো দাম, সংশোধন | |
<ins> |
নতুন যোগ করা | নতুন | নতুন দাম, সংযোজন |
<small> |
ছোট লেখা | ছোট লেখা | ফুটনোট, কপিরাইট |
<sub> |
নিচে ছোট | H2O | রসায়ন সূত্র |
<sup> |
উপরে ছোট | x2 | গণিত সূত্র |
<b> |
শুধু Bold | মোটা | পণ্যের নাম (অর্থ নেই) |
<i> |
শুধু Italic | বাঁকা | বইয়ের নাম (অর্থ নেই) |
<u> |
আন্ডারলাইন | দাগানো | বানান ত্রুটি |
🗂️ HTML Grouping Text — কনটেন্ট গোষ্ঠীবদ্ধ করা
এই সেকশনে HTML-এর Grouping ট্যাগগুলো — div, span, p, blockquote, figure, details সহ আরও অনেক কিছু কমেন্টসহ বোঝানো হয়েছে।
🔷 Grouping কী এবং কেন দরকার?
Grouping মানে একাধিক এলিমেন্টকে একটি কনটেইনারের ভেতরে রাখা, যাতে তাদের একসাথে স্টাইল বা নিয়ন্ত্রণ করা যায়।
<div>-এ রাখলে CSS দিয়ে পুরো কার্ডকে একসাথে
সাজানো যায়।
Grouping ট্যাগগুলো দুই ধরনের:
| ধরন | মানে | উদাহরণ ট্যাগ | আচরণ |
|---|---|---|---|
| Block-level | পুরো লাইন নেয়, নতুন লাইনে শুরু | <div>, <p>, <blockquote> |
উপর-নিচে সাজে |
| Inline | শুধু নিজের জায়গা নেয় | <span>, <a>, <strong> |
পাশাপাশি সাজে |
🔷 <div> — Block Grouping
<div> হলো HTML-এর সবচেয়ে বেশি ব্যবহৃত Grouping ট্যাগ।
এটি Block-level — পুরো লাইন দখল করে এবং নতুন লাইনে শুরু হয়।
নিজের কোনো চেহারা নেই, CSS দিয়ে সাজাতে হয়।
<div>
ব্যবহার করলে কোড জটিল হয়ে যায়। সম্ভব হলে Semantic ট্যাগ
(<header>, <section> ইত্যাদি) ব্যবহার করো।
🔷 <span> — Inline Grouping
<span> হলো Inline Grouping ট্যাগ।
লেখার ভেতরে কোনো নির্দিষ্ট অংশকে আলাদা করে CSS বা JavaScript দিয়ে
নিয়ন্ত্রণ করতে ব্যবহার হয়।
<div> → বড় সেকশন গোষ্ঠীবদ্ধ করতে (block)<span> → লেখার ভেতরে ছোট অংশ আলাদা করতে (inline)
🔷 <blockquote> এবং <q> — উদ্ধৃতি
1. <blockquote> — বড় উদ্ধৃতি (Block) Block Quote
অন্য কোনো উৎস বা বইয়ের বড় উদ্ধৃতি নেওয়ার সময় <blockquote> ব্যবহার করো।
2. <q> — ছোট উদ্ধৃতি (Inline) Inline Quote
লেখার ভেতরে ছোট উদ্ধৃতির জন্য <q> ব্যবহার করো।
ব্রাউজার নিজেই " " চিহ্ন যোগ করে দেয়।
🔷 <figure> এবং <figcaption> — ছবি ও ক্যাপশন
<figure> দিয়ে ছবি এবং তার ক্যাপশন একসাথে গোষ্ঠীবদ্ধ করা হয়।
<figcaption> হলো সেই ছবির বিবরণ।
<img> দিলে Google বুঝতে পারে না ছবিটা কীসের।
<figure> ও <figcaption> ব্যবহার করলে
Google এবং স্ক্রিন রিডার ছবির বিষয়বস্তু বুঝতে পারে।
🔷 <details> এবং <summary> — ক্লিক করে দেখাও
<details> ট্যাগ দিয়ে কনটেন্ট লুকিয়ে রাখা যায় এবং
ক্লিক করলে দেখা যায়। এটি JavaScript ছাড়াই কাজ করে।
🔷 অন্যান্য গুরুত্বপূর্ণ Grouping ট্যাগ
<address> — যোগাযোগের তথ্য Contact Info
<abbr> — সংক্ষেপণের পূর্ণরূপ Abbreviation
<time> — তারিখ ও সময় Date & Time
<code> এবং <pre> — কোড দেখানো Code Block
🔷 দ্রুত রেফারেন্স — সব Grouping ট্যাগ এক নজরে
| ট্যাগ | ধরন | কাজ | কোথায় ব্যবহার করবে |
|---|---|---|---|
<div> |
Block | সাধারণ গ্রুপ কনটেইনার | সেকশন, কার্ড, লেআউট তৈরিতে |
<span> |
Inline | লেখার ভেতরে অংশ আলাদা করা | রঙ, স্টাইল, নির্দিষ্ট শব্দ হাইলাইট |
<blockquote> |
Block | বড় উদ্ধৃতি | বই বা নিবন্ধ থেকে উদ্ধৃতি |
<q> |
Inline | ছোট উদ্ধৃতি | লেখার ভেতরে ছোট quote |
<figure> |
Block | ছবি ও ক্যাপশন একসাথে | ছবি, ডায়াগ্রাম, কোড ব্লক |
<figcaption> |
Block | figure-এর ক্যাপশন | figure-এর ভেতরে |
<details> |
Block | লুকানো কনটেন্ট | FAQ, অ্যাকর্ডিয়ন মেনু |
<summary> |
Block | details-এর শিরোনাম | details-এর ভেতরে |
<address> |
Block | যোগাযোগের তথ্য | footer, contact পেজ |
<abbr> |
Inline | সংক্ষেপণের পূর্ণরূপ | HTML, CSS, API ইত্যাদি শব্দ |
<time> |
Inline | তারিখ ও সময় | আর্টিকেলের তারিখ, ইভেন্ট |
<code> |
Inline | ইনলাইন কোড | লেখার মধ্যে কোড দেখাতে |
<pre> |
Block | হুবহু ফরম্যাট ধরে রাখা | কোড ব্লক, ছক |
🏷️ HTML Standard Attributes
এই সেকশনে HTML-এর Standard (Global) Attributes — যেগুলো যেকোনো ট্যাগে ব্যবহার করা যায় — সেগুলো কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 Standard Attribute কী?
Standard Attribute (বা Global Attribute) হলো সেই Attribute
যেগুলো HTML-এর যেকোনো ট্যাগে ব্যবহার করা যায়।
যেমন id, class, style — এগুলো
<h1>, <p>, <div>
সব ট্যাগেই দেওয়া যায়।
href শুধু <a>-তে, src শুধু
<img>-তে)। কিন্তু Standard Attribute সব ট্যাগেই চলে।
সবচেয়ে গুরুত্বপূর্ণ Standard Attribute:
| Attribute | কাজ | যেকোনো ট্যাগে? |
|---|---|---|
id |
Unique পরিচয় দেওয়া | ✅ হ্যাঁ |
class |
গ্রুপ পরিচয় দেওয়া | ✅ হ্যাঁ |
style |
সরাসরি CSS লেখা | ✅ হ্যাঁ |
title |
Hover করলে tooltip দেখানো | ✅ হ্যাঁ |
lang |
ভাষা নির্ধারণ | ✅ হ্যাঁ |
dir |
লেখার দিক নির্ধারণ | ✅ হ্যাঁ |
hidden |
এলিমেন্ট লুকিয়ে রাখা | ✅ হ্যাঁ |
tabindex |
Tab চাপার ক্রম ঠিক করা | ✅ হ্যাঁ |
contenteditable |
পেজে সরাসরি লেখা যায় | ✅ হ্যাঁ |
data-* |
কাস্টম ডেটা সংরক্ষণ | ✅ হ্যাঁ |
🔷 id — Unique পরিচয়
id দিয়ে একটি এলিমেন্টকে Unique পরিচয় দেওয়া হয়।
পুরো পেজে একটি id মাত্র একবারই ব্যবহার করা যাবে।
id-এর তিনটি ব্যবহার:
id পেজে দুইবার ব্যবহার করবে না।
id-এর নামে স্পেস দেওয়া যাবে না।
সংখ্যা দিয়ে শুরু করা যাবে না।
হাইফেন (-) বা আন্ডারস্কোর (_) ব্যবহার করো।
🔷 class — গ্রুপ পরিচয়
class দিয়ে একাধিক এলিমেন্টকে একটি গ্রুপে রাখা যায়।
একই class অনেক এলিমেন্টে ব্যবহার করা যায়।
| বিষয় | id | class |
|---|---|---|
| পেজে কতবার? | মাত্র ১ বার | যতবার দরকার |
| CSS Selector | #id-নাম |
.class-নাম |
| একটি এলিমেন্টে কতটি? | মাত্র ১টি | একাধিক (স্পেসে আলাদা) |
| ব্যবহার | Unique এলিমেন্ট | গ্রুপ এলিমেন্ট |
🔷 style — সরাসরি CSS লেখা
style Attribute দিয়ে সরাসরি একটি এলিমেন্টে CSS দেওয়া যায়।
এটিকে Inline CSS বলে।
class দিয়ে যুক্ত করো।
🔷 title — Tooltip তথ্য
title Attribute দিলে এলিমেন্টের উপরে
মাউস রাখলে (Hover করলে) একটি ছোট Tooltip দেখায়।
🔷 lang এবং dir — ভাষা ও দিক
lang — ভাষা নির্ধারণ Language
dir — লেখার দিক Direction
🔷 hidden — এলিমেন্ট লুকানো
hidden Attribute দিলে এলিমেন্ট পেজে দেখা যায় না,
তবে HTML কোডে থাকে। JavaScript দিয়ে পরে দেখানো যায়।
🔷 contenteditable — পেজে সরাসরি লেখা
contenteditable দিলে ব্যবহারকারী সরাসরি পেজে
ক্লিক করে লেখা পরিবর্তন করতে পারে — যেন একটি Text Editor।
🔷 data-* — কাস্টম ডেটা সংরক্ষণ
data-* Attribute দিয়ে HTML এলিমেন্টে
কাস্টম তথ্য সংরক্ষণ করা যায় যা পেজে দেখায় না
কিন্তু JavaScript দিয়ে ব্যবহার করা যায়।
🔷 tabindex — Tab চাপার ক্রম
tabindex দিয়ে কীবোর্ডের Tab বোতাম চাপলে কোন এলিমেন্টে
ফোকাস যাবে তার ক্রম নির্ধারণ করা যায়।
🔷 দ্রুত রেফারেন্স — সব Standard Attribute এক নজরে
| Attribute | Value | কাজ | কোথায় বেশি ব্যবহার |
|---|---|---|---|
id |
Unique নাম | এলিমেন্টের অনন্য পরিচয় | CSS, JS, Anchor Link |
class |
ক্লাসের নাম | গ্রুপ পরিচয় | CSS স্টাইল দিতে |
style |
CSS property | Inline CSS লেখা | দ্রুত স্টাইল পরিবর্তন |
title |
যেকোনো লেখা | Hover করলে tooltip | লিংক, ছবি, abbr |
lang |
ভাষার কোড | ভাষা নির্ধারণ | html ট্যাগ, বহুভাষিক পেজ |
dir |
ltr / rtl / auto | লেখার দিক | আরবি, উর্দু কনটেন্ট |
hidden |
(কোনো value নেই) | এলিমেন্ট লুকানো | JS দিয়ে দেখানো/লুকানো |
contenteditable |
true / false | পেজে সরাসরি লেখা | নোটপ্যাড, Editor তৈরি |
data-* |
যেকোনো ডেটা | কাস্টম ডেটা রাখা | JS দিয়ে ডেটা পড়তে |
tabindex |
-1 / 0 / 1, 2... | Tab ক্রম নির্ধারণ | Keyboard accessibility |
📋 HTML Lists এবং Types
এই সেকশনে HTML-এর সব ধরনের List — Unordered, Ordered, Description List এবং Nested List — কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 HTML List কী?
HTML List দিয়ে একাধিক আইটেম সুন্দরভাবে সাজিয়ে দেখানো যায়। নেভিগেশন মেনু, ধাপের নির্দেশনা, শপিং তালিকা — সব জায়গায় List ব্যবহার হয়।
| ট্যাগ | পুরো নাম | ধরন | কোথায় ব্যবহার |
|---|---|---|---|
<ul> |
Unordered List | বুলেট পয়েন্ট ● | নেভিগেশন, feature তালিকা |
<ol> |
Ordered List | নম্বর ১. ২. ৩. | ধাপের নির্দেশনা, রেসিপি |
<dl> |
Description List | শব্দ + বিবরণ | Glossary, FAQ, Dictionary |
🔷 Unordered List — বুলেট পয়েন্টের তালিকা
<ul> ব্যবহার করো যখন তালিকার আইটেমের
ক্রম গুরুত্বপূর্ণ নয়।
ব্রাউজার ডিফল্টে প্রতিটি আইটেমের আগে ● বুলেট দেখায়।
মূল গঠন:
👇 ব্রাউজারে দেখাবে:
- HTML
- CSS
- JavaScript
ul-এর বুলেটের ধরন — list-style-type CSS দিয়ে
<ul> — শুধু CSS দিয়ে বুলেট সরিয়ে
সুন্দর করে সাজানো হয়।
🔷 Ordered List — নম্বরওয়ালা তালিকা
<ol> ব্যবহার করো যখন তালিকার আইটেমের
ক্রম গুরুত্বপূর্ণ।
ডিফল্টে ১, ২, ৩... নম্বর দিয়ে দেখায়।
মূল গঠন:
👇 ব্রাউজারে দেখাবে:
- প্রথমে HTML শিখবো
- তারপর CSS শিখবো
- তারপর JavaScript
ol-এর নম্বরের ধরন — type Attribute type
start — নম্বর শুরুর সংখ্যা start
👇 ব্রাউজারে দেখাবে:
- পাঁচ নম্বর আইটেম
- ছয় নম্বর আইটেম
- সাত নম্বর আইটেম
reversed — উল্টো ক্রমে নম্বর reversed
li-এর value — নির্দিষ্ট নম্বর দেওয়া value
🔷 Description List — শব্দ ও বিবরণের তালিকা
<dl> ব্যবহার করো যখন শব্দ ও তার বিবরণ
একসাথে দেখাতে চাও — যেমন অভিধান বা FAQ পেজ।
মূল গঠন:
👇 ব্রাউজারে দেখাবে:
- HTML
- HyperText Markup Language।
- CSS
- Cascading Style Sheets।
- JavaScript
- ওয়েবপেজকে Interactive করার ভাষা।
একটি শব্দের একাধিক বিবরণ:
🔷 Nested List — তালিকার ভেতরে তালিকা
একটি List-এর <li>-এর ভেতরে আরেকটি List রাখা যায়।
এটিকে Nested List বলে।
ul-এর ভেতরে ul (সবচেয়ে বেশি ব্যবহৃত): ul → ul
👇 ব্রাউজারে দেখাবে:
- Frontend
- Backend
- Tools
- VSCode
- Git
- GitHub
ol-এর ভেতরে ol: ol → ol
মিশ্র Nested List (ul ও ol একসাথে): ul → ol
<li>-এর ভেতরে রাখতে হবে, <ul> বা
<ol>-এর সরাসরি ভেতরে নয়।
এবং বেশি গভীর Nesting (৩ স্তরের বেশি) এড়িয়ে চলো।
🔷 রিয়েল উদাহরণ
1. নেভিগেশন মেনু (ul + CSS) Navigation
2. রেসিপির ধাপ (ol) Recipe Steps
3. শপিং লিস্ট (ul + Nested) Shopping List
4. FAQ পেজ (dl) FAQ
🔷 দ্রুত রেফারেন্স — সব List ট্যাগ এক নজরে
| ট্যাগ | কাজ | গুরুত্বপূর্ণ Attribute | কোথায় ব্যবহার |
|---|---|---|---|
<ul> |
বুলেট পয়েন্ট তালিকা | style="list-style-type: ..." |
নেভিগেশন, feature তালিকা |
<ol> |
নম্বরওয়ালা তালিকা | type, start, reversed |
ধাপের নির্দেশনা, রেসিপি |
<li> |
তালিকার আইটেম | value (ol-এ) |
ul ও ol-এর ভেতরে |
<dl> |
বিবরণ তালিকা কনটেইনার | — | Glossary, FAQ, Dictionary |
<dt> |
বিবরণ তালিকার শব্দ | — | dl-এর ভেতরে |
<dd> |
শব্দের বিবরণ | — | dl-এর ভেতরে dt-এর পরে |
ol type-এর সারসংক্ষেপ:
| type | দেখায় | উদাহরণ |
|---|---|---|
type="1" |
সংখ্যা (ডিফল্ট) | 1, 2, 3... |
type="A" |
বড়হাতা অক্ষর | A, B, C... |
type="a" |
ছোটহাতা অক্ষর | a, b, c... |
type="I" |
বড়হাতা রোমান | I, II, III... |
type="i" |
ছোটহাতা রোমান | i, ii, iii... |
📊 HTML Table
এই সেকশনে HTML Table-এর সব ট্যাগ, thead/tbody/tfoot, colspan, rowspan এবং রিয়েল উদাহরণ — কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 HTML Table কী?
HTML Table দিয়ে ডেটা সারি ও কলামে সাজিয়ে দেখানো যায় — যেমন রেজাল্ট শিট, মূল্য তালিকা বা সময়সূচী।
| ট্যাগ | পুরো নাম | কাজ |
|---|---|---|
<table> |
Table | পুরো টেবিলের কনটেইনার |
<tr> |
Table Row | একটি সারি |
<th> |
Table Header | শিরোনাম ঘর (Bold, মাঝখানে) |
<td> |
Table Data | সাধারণ ডেটা ঘর |
<thead> |
Table Head | শিরোনাম সারির গ্রুপ |
<tbody> |
Table Body | মূল ডেটার গ্রুপ |
<tfoot> |
Table Footer | সারসংক্ষেপ সারির গ্রুপ |
<caption> |
Table Caption | টেবিলের শিরোনাম/বিবরণ |
🔷 সবচেয়ে সহজ Table
মূল গঠন:
👇 ব্রাউজারে দেখাবে:
| নাম | বিষয় | নম্বর |
|---|---|---|
| তানভীর | HTML | ৯৫ |
| তাহমিনা | CSS | ৮৮ |
🔷 thead, tbody, tfoot — সঠিক Table কাঠামো
Table-এ <thead>, <tbody>,
<tfoot> ব্যবহার করলে কাঠামো পরিষ্কার থাকে এবং
CSS দিয়ে আলাদাভাবে স্টাইল দেওয়া যায়।
👇 ব্রাউজারে দেখাবে:
| পণ্য | পরিমাণ | একক মূল্য | মোট |
|---|---|---|---|
| HTML বই | ১০ | ৩০০ টাকা | ৩,০০০ টাকা |
| CSS বই | ৫ | ৩৫০ টাকা | ১,৭৫০ টাকা |
| সর্বমোট | ৪,৭৫০ টাকা | ||
🔷 colspan — কলাম জোড়া লাগানো
colspan দিলে একটি ঘর একাধিক কলাম জুড়ে বিস্তার করে।
👇 ব্রাউজারে দেখাবে:
| শিক্ষার্থীর ফলাফল | ||
|---|---|---|
| নাম | বিষয় | নম্বর |
| তানভীর | HTML | ৯৫ |
| মোট নম্বর | ৯৫ | |
🔷 rowspan — সারি জোড়া লাগানো
rowspan দিলে একটি ঘর একাধিক সারি জুড়ে বিস্তার করে।
👇 ব্রাউজারে দেখাবে:
| বিভাগ | কোর্স | সময়কাল |
|---|---|---|
| Frontend | HTML & CSS | ১ মাস |
| JavaScript | ২ মাস | |
| Backend | Node.js | ২ মাস |
| Database | ১ মাস |
colspan = ঘর পাশে বাড়ে → কলাম জোড়া লাগেrowspan = ঘর নিচে বাড়ে ↓ সারি জোড়া লাগে
🔷 রিয়েল উদাহরণ
1. রেজাল্ট শিট Result Sheet
👇 ব্রাউজারে দেখাবে:
| রোল | নাম | বাংলা | ইংরেজি | গণিত | মোট |
|---|---|---|---|---|---|
| ১ | তানভীর | ৮৫ | ৯০ | ৯৫ | ২৭০ |
| ২ | তাহমিনা | ৯২ | ৮৮ | ৭৮ | ২৫৮ |
| সর্বোচ্চ নম্বর | ২৭০ | ||||
2. ক্লাস রুটিন (colspan + rowspan একসাথে) Class Routine
👇 ব্রাউজারে দেখাবে:
| সময় | রবিবার | সোমবার | মঙ্গলবার |
|---|---|---|---|
| সকাল ৯টা | HTML | CSS (দীর্ঘ ক্লাস) | JavaScript |
| সকাল ১০টা | বিরতি | বিরতি | |
| সকাল ১১টা | প্র্যাকটিক্যাল ক্লাস (সবাই একসাথে) | ||
🔷 দ্রুত রেফারেন্স — সব Table ট্যাগ এক নজরে
| ট্যাগ / Attribute | কাজ | কোথায় লেখে | Closing ট্যাগ? |
|---|---|---|---|
<table> |
টেবিল কনটেইনার | সবার বাইরে | ✅ হ্যাঁ |
<caption> |
টেবিলের শিরোনাম | table-এর প্রথমেই | ✅ হ্যাঁ |
<thead> |
শিরোনাম গ্রুপ | table-এর ভেতরে | ✅ হ্যাঁ |
<tbody> |
ডেটা গ্রুপ | thead-এর পরে | ✅ হ্যাঁ |
<tfoot> |
সারসংক্ষেপ গ্রুপ | tbody-এর পরে | ✅ হ্যাঁ |
<tr> |
একটি সারি | thead/tbody/tfoot-এ | ✅ হ্যাঁ |
<th> |
শিরোনাম ঘর (Bold) | tr-এর ভেতরে | ✅ হ্যাঁ |
<td> |
সাধারণ ডেটা ঘর | tr-এর ভেতরে | ✅ হ্যাঁ |
colspan="n" |
n কলাম জোড়া → | th বা td-তে | — |
rowspan="n" |
n সারি জোড়া ↓ | th বা td-তে | — |
scope |
th কোন দিকের শিরোনাম | th-তে | — |
colspan ও rowspan-এর পার্থক্য:
| Attribute | দিক | মানে | উদাহরণ |
|---|---|---|---|
colspan="2" |
→ পাশে বাড়ে | ২টি কলাম একসাথে | <td colspan="2"> |
rowspan="2" |
↓ নিচে বাড়ে | ২টি সারি একসাথে | <td rowspan="2"> |
colspan="2" rowspan="2" |
→ ও ↓ দুদিকে | ২×২ = ৪ ঘর একসাথে | <td colspan="2" rowspan="2"> |
🎬 Embedding Media
এই সেকশনে HTML-এ ছবি, অডিও, ভিডিও, iframe, img vs figure, CSP এবং Priority Hints — সব ধরনের মিডিয়া যুক্ত করার উপায়, পার্থক্য ও নিরাপত্তা কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 Embedding কী?
Embedding মানে HTML পেজের ভেতরে বাইরের মিডিয়া কনটেন্ট যুক্ত করা — যেমন ছবি, অডিও, ভিডিও বা YouTube ভিডিও। সঠিক ট্যাগ বেছে নিলে পেজ দ্রুত লোড হয়, Accessibility ভালো থাকে এবং Google সঠিকভাবে কনটেন্ট বুঝতে পারে।
| ট্যাগ | কাজ | ফাইলের ধরন | Closing ট্যাগ? |
|---|---|---|---|
<img> |
ছবি দেখানো | .jpg, .png, .gif, .svg, .webp | ❌ না |
<figure> |
ছবি + ক্যাপশন গ্রুপ | যেকোনো মিডিয়া | ✅ হ্যাঁ |
<figcaption> |
figure-এর ক্যাপশন | টেক্সট | ✅ হ্যাঁ |
<audio> |
অডিও বাজানো | .mp3, .ogg, .wav | ✅ হ্যাঁ |
<video> |
ভিডিও দেখানো | .mp4, .webm, .ogg | ✅ হ্যাঁ |
<source> |
audio/video-এর সোর্স ফাইল | audio ও video-এর ভেতরে | ❌ না |
<iframe> |
অন্য পেজ বা YouTube/Map | URL (লিংক) | ✅ হ্যাঁ |
🔷 <img> — ছবি যুক্ত করা
<img> দিয়ে HTML পেজে ছবি যুক্ত করা হয়।
এটি একটি Self-Closing ট্যাগ — Closing Tag লাগে না।
src ও alt — এই দুটো Attribute সবসময় দিতে হবে।
মূল গঠন:
বিভিন্ন ধরনের src (ছবির সোর্স): src
গুরুত্বপূর্ণ Attribute বিস্তারিত: Attributes
alt="" বা alt="ছবি" লেখা ভুল।
ছবিতে কী আছে সেটা সংক্ষেপে লিখো — যেমন alt="তানভীর হোসেনের প্রোফাইল ছবি"।
তবে শুধু সাজসজ্জার জন্য ব্যবহৃত ছবিতে alt="" (খালি) দিলে
স্ক্রিন রিডার সেটা এড়িয়ে যাবে — এটা ঠিক আছে।
| Attribute | কাজ | উদাহরণ | দরকার? |
|---|---|---|---|
src |
ছবির ঠিকানা | src="photo.jpg" |
✅ অবশ্যই |
alt |
ছবির বিকল্প লেখা | alt="প্রোফাইল ছবি" |
✅ অবশ্যই |
width |
ছবির প্রস্থ | width="400" |
দেওয়া ভালো |
height |
ছবির উচ্চতা | height="300" |
দেওয়া ভালো |
loading |
লোড কখন হবে | loading="lazy" |
নিচের ছবিতে দাও |
decoding |
Decode পদ্ধতি | decoding="async" |
বড় ছবিতে ভালো |
title |
Hover tooltip | title="ছবির বিবরণ" |
প্রয়োজনে |
🔷 <figure> ও <figcaption> — ছবির প্রেক্ষাপট
<figure> দিয়ে ছবি এবং তার ক্যাপশন একসাথে গোষ্ঠীবদ্ধ করা হয়।
<figcaption> হলো সেই ছবির বিবরণ বা শিরোনাম।
এটি Semantic HTML — Google ও স্ক্রিন রিডার এই সম্পর্কটা বোঝে।
মূল গঠন:
figcaption উপরে বা নিচে: Position
figure-এ ছবি ছাড়া অন্য মিডিয়াও রাখা যায়: Other Media
🔷 img vs. figure — কখন কোনটা ব্যবহার করবো?
<img> শুধু ছবি দেখায়।
<figure> ছবিকে তার প্রেক্ষাপটসহ (ক্যাপশন, বিবরণ) উপস্থাপন করে।
সঠিক টা বেছে নিলে পেজের Accessibility ও SEO ভালো হয়।
| বিষয় | <img> একা |
<figure> + <img> |
|---|---|---|
| ক্যাপশন | ❌ নেই | ✅ figcaption দিয়ে যোগ করা যায় |
| Semantic অর্থ | শুধু ছবি | ছবি + প্রেক্ষাপট একসাথে |
| CSS দিয়ে গ্রুপ সাজানো | কঠিন | ✅ পুরো figure একসাথে সাজানো যায় |
| কনটেন্ট থেকে আলাদা? | না, কনটেন্টের ভেতরে | হ্যাঁ, আলাদা করলেও অর্থ থাকে |
| Screen Reader | শুধু alt পড়ে | alt + figcaption দুটোই পড়ে |
| Google SEO | alt থেকে বোঝে | alt + figcaption দুটো থেকে বোঝে |
| কোথায় ব্যবহার | লোগো, আইকন, প্রোফাইল ছবি | আর্টিকেল ছবি, চার্ট, ডায়াগ্রাম |
সঠিক উদাহরণ — কখন কোনটা: উদাহরণ
<figure> ব্যবহার করো।
না থাকলে → শুধু <img> যথেষ্ট।
🔷 <audio> — অডিও যুক্ত করা
<audio> ট্যাগ দিয়ে HTML পেজে অডিও বাজানো যায়।
controls Attribute না দিলে প্লেয়ার দেখা যাবে না —
অডিও চলবে কিন্তু থামানোর বা ভলিউম কমানোর কোনো উপায় থাকবে না।
মূল গঠন:
সব Attribute বিস্তারিত: Attributes
source ট্যাগ — একাধিক ফরম্যাট দেওয়া: source
| ফরম্যাট | type | ব্রাউজার সাপোর্ট | ফাইল সাইজ |
|---|---|---|---|
.mp3 |
audio/mpeg |
সব ব্রাউজার ✅ | ছোট |
.ogg |
audio/ogg |
Chrome, Firefox | ছোট |
.wav |
audio/wav |
সব ব্রাউজার ✅ | বড় |
.aac |
audio/aac |
Chrome, Safari | ছোট |
autoplay ব্লক করে যদি না muted থাকে।
Background music এর জন্য autoplay muted loop দাও — ব্যবহারকারী চাইলে আনমিউট করবে।
🔷 <video> — ভিডিও যুক্ত করা
<video> ট্যাগ দিয়ে HTML পেজে ভিডিও দেখানো যায়।
poster Attribute দিলে ভিডিও লোড হওয়ার আগে একটি thumbnail ছবি দেখায় —
পেজ সুন্দর দেখায় এবং ব্যবহারকারী বোঝে কী ধরনের ভিডিও।
মূল গঠন:
সব Attribute বিস্তারিত: Attributes
source ট্যাগ — একাধিক ফরম্যাট: source
| ফরম্যাট | type | ব্রাউজার সাপোর্ট | মন্তব্য |
|---|---|---|---|
.mp4 |
video/mp4 |
সব ব্রাউজার ✅ | সবচেয়ে ভালো পছন্দ |
.webm |
video/webm |
Chrome, Firefox, Edge | ছোট সাইজ, ভালো মান |
.ogg |
video/ogg |
Firefox (পুরনো) | কম ব্যবহৃত |
audio ও video Attribute তুলনা:
| Attribute | কাজ | <audio> | <video> |
|---|---|---|---|
controls |
প্লেয়ার UI দেখায় | ✅ | ✅ |
autoplay |
নিজে নিজে শুরু হয় | ✅ | ✅ |
loop |
বারবার চলে | ✅ | ✅ |
muted |
শব্দ বন্ধ রেখে শুরু | ✅ | ✅ |
preload |
আগে থেকে কতটুকু লোড | ✅ | ✅ |
poster |
শুরুর আগে thumbnail | ❌ | ✅ |
width / height |
সাইজ নির্ধারণ | ❌ | ✅ |
playsinline |
মোবাইলে পেজেই বাজে | ❌ | ✅ |
🔷 <iframe> — অন্য পেজ বা YouTube যুক্ত করা
<iframe> দিয়ে পেজের ভেতরে আরেকটি ওয়েবপেজ দেখানো যায়।
এটি সম্পূর্ণ আলাদা একটি উইন্ডো — ভেতরের কনটেন্ট বাইরের পেজকে প্রভাবিত করে না।
YouTube ভিডিও Embed করা: YouTube
Google Map Embed করা: Google Map
sandbox — iframe সীমাবদ্ধ করা: sandbox
X-Frame-Options Header দিয়ে iframe ব্লক করে।
YouTube ও Google Map সবসময় iframe সাপোর্ট করে।
অজানা সাইটের iframe যুক্ত করার আগে sandbox দাও।
🔷 ছবির ফরম্যাট — কোনটা কখন ব্যবহার করবো?
| ফরম্যাট | কোথায় ভালো | সুবিধা | অসুবিধা |
|---|---|---|---|
.jpg / .jpeg |
ফটো, বড় রঙিন ছবি | ছোট ফাইল সাইজ | Transparency নেই |
.png |
লোগো, স্ক্রিনশট, আইকন | Transparency সাপোর্ট, পরিষ্কার | ফাইল সাইজ বড় |
.gif |
ছোট অ্যানিমেশন | অ্যানিমেশন সাপোর্ট | শুধু ২৫৬ রঙ |
.svg |
আইকন, লোগো, ইলাস্ট্রেশন | যেকোনো সাইজে পরিষ্কার, ছোট | ফটো হয় না |
.webp |
সব ধরনের ছবি | jpg-র চেয়ে ৩০% ছোট, Transparency আছে | পুরনো ব্রাউজার সাপোর্ট নেই |
.avif |
আধুনিক পেজের ছবি | webp-র চেয়েও ছোট | নতুন ফরম্যাট, কম সাপোর্ট |
.webp (না হলে .jpg) |
লোগো/আইকন → .svg |
ব্যাকগ্রাউন্ড লোগো → .png |
অ্যানিমেশন → .gif বা CSS Animation
🔷 রিয়েল উদাহরণ
1. নিউজ আর্টিকেল — figure ও img News Article
2. ভিডিও টিউটোরিয়াল পেজ Tutorial Page
3. Contact পেজ — Map ও Audio Contact Page
🔷 CSP — Content Security Policy
CSP (Content Security Policy) হলো ব্রাউজারকে বলার উপায় — "এই পেজ শুধু নির্দিষ্ট জায়গা থেকেই কনটেন্ট লোড করতে পারবে।" এটি ওয়েবপেজকে XSS ও Clickjacking আক্রমণ থেকে সুরক্ষিত রাখে।
HTML meta ট্যাগে CSP: meta CSP
গুরুত্বপূর্ণ CSP Directive ও উদাহরণ: Directives
| Directive | নিয়ন্ত্রণ করে | মিডিয়ায় ব্যবহার |
|---|---|---|
default-src |
সব ধরনের কনটেন্টের ডিফল্ট | সব কিছুর জন্য fallback |
img-src |
ছবির সোর্স | <img> ট্যাগের জন্য |
media-src |
audio ও video-এর সোর্স | <audio>, <video>-এর জন্য |
frame-src |
iframe-এর সোর্স | <iframe>-এর জন্য |
script-src |
JavaScript-এর সোর্স | XSS ঠেকাতে সবচেয়ে গুরুত্বপূর্ণ |
style-src |
CSS-এর সোর্স | Google Fonts অনুমতি দিতে |
font-src |
ফন্টের সোর্স | Google Fonts gstatic-এর জন্য |
connect-src |
API / fetch কোথায় যাবে | JavaScript fetch/XHR-এর জন্য |
<meta> ট্যাগে CSP দিলে frame-ancestors
Directive কাজ করে না।
সম্পূর্ণ সুরক্ষার জন্য Server-এ HTTP Response Header-এ
Content-Security-Policy দেওয়া সবচেয়ে কার্যকর।
🔷 Priority Hints — লোডিং অগ্রাধিকার
Priority Hints হলো fetchpriority Attribute দিয়ে
ব্রাউজারকে বলার উপায় — "এই রিসোর্সটা আগে লোড করো, ওটা পরে।"
এতে পেজের গুরুত্বপূর্ণ কনটেন্ট আগে দেখা যায় এবং পেজ দ্রুত মনে হয়।
fetchpriority-এর তিনটি মান: Values
একটি পেজে সঠিক Priority ব্যবহার: পূর্ণ উদাহরণ
| মান | মানে | কোথায় ব্যবহার করবো | কোথায় ব্যবহার করবো না |
|---|---|---|---|
fetchpriority="high" |
সবার আগে লোড করো | হিরো ছবি, মূল CSS, গুরুত্বপূর্ণ ফন্ট | সব ছবিতে দিলে কোনো সুবিধা নেই |
fetchpriority="low" |
পরে লোড হলেই চলে | ফুটার ছবি, Analytics, নিচের Map | hero বা প্রথম দৃশ্যমান ছবিতে |
fetchpriority="auto" |
ব্রাউজার ঠিক করবে | সাধারণ কনটেন্ট ছবি | — |
loading="lazy" → কখন লোড শুরু হবে (স্ক্রোল না করলে লোড হবে না)fetchpriority → লোড শুরু হলে কোনটা আগে আসবেদুটো একসাথে দিতে পারো —
loading="lazy" fetchpriority="low"
মানে: স্ক্রোল করলে লোড শুরু হবে এবং তখনও সবার শেষে লোড হবে।
📝 Using Forms — HTML ফর্ম
এই সেকশনে HTML Form-এর সব ট্যাগ, Input Type, Attribute, Validation এবং রিয়েল উদাহরণ — কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 HTML Form কী?
HTML Form দিয়ে ওয়েবপেজে ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহ করা হয় — যেমন লগইন, রেজিস্ট্রেশন, সার্চ বা যোগাযোগ ফর্ম।
Form-এর মূল ট্যাগগুলো:
| ট্যাগ | কাজ | Closing ট্যাগ? |
|---|---|---|
<form> |
পুরো ফর্মের কনটেইনার | ✅ হ্যাঁ |
<input> |
বিভিন্ন ধরনের ইনপুট ফিল্ড | ❌ না (self-closing) |
<label> |
ইনপুটের শিরোনাম | ✅ হ্যাঁ |
<textarea> |
বহু লাইনের টেক্সট বক্স | ✅ হ্যাঁ |
<select> |
ড্রপডাউন তালিকা | ✅ হ্যাঁ |
<option> |
ড্রপডাউনের প্রতিটি আইটেম | ✅ হ্যাঁ |
<button> |
ক্লিকযোগ্য বোতাম | ✅ হ্যাঁ |
<fieldset> |
সম্পর্কিত ফিল্ড গ্রুপ | ✅ হ্যাঁ |
<legend> |
fieldset-এর শিরোনাম | ✅ হ্যাঁ |
<datalist> |
ইনপুটের পরামর্শ তালিকা | ✅ হ্যাঁ |
🔷 <form> ট্যাগ — গুরুত্বপূর্ণ Attribute
<form> ট্যাগে action ও method
সবচেয়ে গুরুত্বপূর্ণ Attribute — ডেটা কোথায় ও কীভাবে যাবে তা নির্ধারণ করে।
action ও method: action & method
enctype — ফাইল আপলোডের জন্য: enctype
| Attribute | মান | কাজ | কখন ব্যবহার |
|---|---|---|---|
action |
URL | ডেটা কোথায় যাবে | সবসময় |
method="GET" |
GET | URL-এ ডেটা দেখা যায় | সার্চ ফর্ম |
method="POST" |
POST | URL-এ ডেটা লুকানো থাকে | লগইন, রেজিস্ট্রেশন |
enctype |
multipart/form-data | ফাইল আপলোড সক্ষম করে | ফাইল আপলোড ফর্ম |
autocomplete |
on / off | Browser auto-fill চালু/বন্ধ | পাসওয়ার্ড ফর্মে off দাও |
novalidate |
(কোনো value নেই) | Built-in validation বন্ধ | Custom validation করলে |
🔷 <label> — ইনপুটের শিরোনাম
<label> ট্যাগ ইনপুটের শিরোনাম দেয়।
label-এ ক্লিক করলে সংযুক্ত input-এ ফোকাস যায় —
এটি মোবাইলে ফর্ম ব্যবহার অনেক সহজ করে।
উপায় ১ — for ও id মেলানো: for & id
উপায় ২ — Wrapping (label-এর ভেতরে input): Wrapping
🔷 <input> type — বিভিন্ন ধরনের ইনপুট
type Attribute পরিবর্তন করলে ইনপুটের চেহারা,
আচরণ ও মোবাইলে কীবোর্ড বদলে যায়।
HTML5-এ অনেক নতুন type যোগ হয়েছে যা Validation-ও করে।
1. টেক্সট ইনপুট: Text Types
2. নম্বর ইনপুট: Number Types
3. তারিখ ও সময়: Date & Time
4. পছন্দ ইনপুট: Choice Types
5. ফাইল, রঙ ও লুকানো: Special Types
6. বোতাম ইনপুট: Button Types
সব input type এক নজরে:
| type | কাজ | মোবাইল কীবোর্ড | Validation |
|---|---|---|---|
text |
সাধারণ টেক্সট | সাধারণ | ❌ |
email |
ইমেইল ঠিকানা | @ কীবোর্ড | ✅ @ যাচাই |
password |
পাসওয়ার্ড | সাধারণ | ❌ |
number |
সংখ্যা | নম্বর কীবোর্ড | ✅ সংখ্যা যাচাই |
tel |
ফোন নম্বর | নম্বর কীবোর্ড | ❌ |
url |
ওয়েব লিংক | URL কীবোর্ড | ✅ https:// যাচাই |
date |
তারিখ | ক্যালেন্ডার | ✅ তারিখ যাচাই |
checkbox |
একাধিক পছন্দ | — | ❌ |
radio |
একটি পছন্দ | — | ❌ |
file |
ফাইল আপলোড | ফাইল পিকার | ✅ ধরন যাচাই |
range |
স্লাইডার | — | ✅ min/max |
color |
রঙ পিকার | রঙ পিকার | ❌ |
hidden |
লুকানো ডেটা | — | ❌ |
🔷 Input-এর গুরুত্বপূর্ণ Attribute
| Attribute | কাজ | উদাহরণ | দরকার? |
|---|---|---|---|
name |
ডেটার চাবিকাঠি | name="email" |
✅ অবশ্যই |
placeholder |
ইঙ্গিত লেখা | placeholder="ইমেইল দাও" |
ভালো অভ্যাস |
required |
পূরণ না করলে জমা হবে না | required |
জরুরি ফিল্ডে |
disabled |
সম্পূর্ণ নিষ্ক্রিয় | disabled |
প্রয়োজনে |
readonly |
পড়া যাবে, পরিবর্তন নয় | readonly |
প্রয়োজনে |
maxlength |
সর্বোচ্চ অক্ষর সংখ্যা | maxlength="100" |
টেক্সটে ভালো |
pattern |
Regex ফরম্যাট যাচাই | pattern="[A-Za-z]+" |
Custom validation-এ |
autofocus |
পেজ লোডে ফোকাস | autofocus |
মূল ইনপুটে |
🔷 <textarea> — বহু লাইনের টেক্সট
<textarea> দিয়ে বহু লাইনের টেক্সট ইনপুট তৈরি হয়।
মন্তব্য, বার্তা বা বিস্তারিত বিবরণের জন্য ব্যবহার করো।
width ও height দিয়ে নিয়ন্ত্রণ করো —
rows ও cols শুধু fallback হিসেবে রাখো।
ব্যবহারকারী resize করতে না পারলে resize: none দাও।
🔷 <select> ও <option> — ড্রপডাউন মেনু
<select> দিয়ে ড্রপডাউন তালিকা তৈরি হয়।
অনেক অপশনের মধ্য থেকে একটি (বা একাধিক) বেছে নেওয়ার জন্য ব্যবহার করো।
সাধারণ ড্রপডাউন: select
optgroup — গ্রুপ করা ড্রপডাউন: optgroup
multiple — একাধিক পছন্দ: multiple
🔷 fieldset, legend ও datalist
fieldset ও legend — ফিল্ড গ্রুপ করা: fieldset
datalist — Auto-suggest তালিকা: datalist
<select> = শুধু তালিকা থেকে বেছে নিতে হয়<datalist> = তালিকা দেখায় কিন্তু নিজেও লিখতে পারে
🔷 HTML5 Form Validation — ফর্ম যাচাই
HTML5-এ JavaScript ছাড়াই ব্রাউজার ফর্ম যাচাই করতে পারে।
required, pattern, min/max দিয়ে
নিয়ম দিলে ব্রাউজার Submit-এর আগে নিজেই যাচাই করে।
🔷 রিয়েল উদাহরণ
1. লগইন ফর্ম Login Form
2. যোগাযোগ ফর্ম Contact Form
3. রেজিস্ট্রেশন ফর্ম — fieldset সহ Registration Form
🔷 দ্রুত রেফারেন্স — সব Form ট্যাগ ও Attribute এক নজরে
| ট্যাগ | কাজ | মূল Attribute |
|---|---|---|
<form> |
ফর্মের কনটেইনার | action, method, enctype |
<input> |
ইনপুট ফিল্ড | type, name, required |
<label> |
ইনপুটের শিরোনাম | for |
<textarea> |
বহু লাইনের টেক্সট | rows, cols, maxlength |
<select> |
ড্রপডাউন | name, multiple, size |
<option> |
ড্রপডাউন আইটেম | value, selected, disabled |
<optgroup> |
option গ্রুপ | label |
<button> |
বোতাম | type (submit/reset/button) |
<fieldset> |
ফিল্ড গ্রুপ | disabled |
<legend> |
fieldset-এর শিরোনাম | — |
<datalist> |
পরামর্শ তালিকা | id (input-এর list-এর সাথে মেলাও) |
GET vs POST মনে রাখার উপায়:
| বিষয় | GET | POST |
|---|---|---|
| ডেটা কোথায়? | URL-এ দেখা যায় | Request body-তে লুকানো |
| নিরাপত্তা | কম নিরাপদ | বেশি নিরাপদ |
| Bookmark করা যায়? | ✅ হ্যাঁ | ❌ না |
| ডেটার সীমা | সীমিত (URL দৈর্ঘ্য) | বড় ডেটা পাঠানো যায় |
| কোথায় ব্যবহার | সার্চ, ফিল্টার | লগইন, রেজিস্ট্রেশন, আপলোড |
🔷 Form Constraints — ইনপুটের নিয়মের সীমানা
Form Constraints হলো ইনপুট ফিল্ডে কী ধরনের ডেটা দেওয়া যাবে তার নিয়মের সীমানা। ব্রাউজার Submit-এর আগে এই নিয়মগুলো নিজেই যাচাই করে — ভুল হলে error দেখায় ও Submit থামিয়ে দেয়।
সব Constraint Attribute একসাথে: Constraints
Constraint ও CSS :valid / :invalid: CSS Pseudo-class
formnovalidate — নির্দিষ্ট বোতামে Validation বন্ধ: formnovalidate
formaction, formmethod — বোতাম ভেদে আলাদা Action: formaction
| Constraint | প্রযোজ্য type | error কখন? | উদাহরণ |
|---|---|---|---|
required |
সব type | ফাঁকা থাকলে | required |
minlength |
text, password, email, search | অক্ষর কম হলে | minlength="8" |
maxlength |
text, password, email, search | অক্ষর বেশি হলে (টাইপ থামে) | maxlength="50" |
min |
number, date, time, range | মান কম হলে | min="1" |
max |
number, date, time, range | মান বেশি হলে | max="100" |
step |
number, date, time, range | নির্দিষ্ট ব্যবধানে না হলে | step="5" |
pattern |
text, tel, email, url | Pattern না মিললে | pattern="[0-9]{4}" |
type |
email, url, number | ফরম্যাট ভুল হলে | type="email" |
🔷 output, meter ও progress — ফলাফল ও অগ্রগতি দেখানো
<output> — গণনার ফলাফল দেখানো: output
<meter> — পরিমাপের গেজ: meter
<progress> — কাজের অগ্রগতি: progress
| ট্যাগ | কাজ | পার্থক্য | উদাহরণ |
|---|---|---|---|
<output> |
গণনার ফলাফল | JS দিয়ে আপডেট হয় | মোট দাম, বয়স গণনা |
<meter> |
নির্দিষ্ট পরিসরের মান | low/high/optimum আছে | ডিস্ক ব্যবহার, রেটিং |
<progress> |
কাজের অগ্রগতি | সময়ের সাথে বাড়ে | ফাইল আপলোড, কোর্স অগ্রগতি |
🔷 Form Accessibility — সবার জন্য ব্যবহারযোগ্য ফর্ম
Accessible Form মানে এমন ফর্ম যা স্ক্রিন রিডার, কীবোর্ড এবং বিশেষ সহায়ক প্রযুক্তি দিয়েও ব্যবহার করা যায়। এটি ভালো ডিজাইনের অংশ — শুধু বিশেষ প্রয়োজনের মানুষের জন্য নয়।
ARIA Attribute — অতিরিক্ত তথ্য: ARIA
Accessible Error Message: Error
☑ প্রতিটি input-এ
<label> আছে☑ required ফিল্ড * বা "(আবশ্যক)" দিয়ে চিহ্নিত
☑ Error message ইনপুটের কাছে ও পরিষ্কার ভাষায়
☑ Tab দিয়ে সব ফিল্ডে যাওয়া যায়
☑ শুধু রঙ দিয়ে error বোঝানো হয়নি (আইকন বা লেখাও আছে)
☑
aria-describedby দিয়ে hint ও error সংযুক্ত
🔷 Form Security — ফর্মের নিরাপত্তা
ফর্ম থেকে পাঠানো ডেটা সুরক্ষিত রাখতে HTML স্তরে কিছু সতর্কতা নেওয়া উচিত। তবে আসল নিরাপত্তা সার্ভার সাইডে নিশ্চিত করতে হবে।
autocomplete নিয়ন্ত্রণ: autocomplete
Honeypot ফিল্ড — Bot ঠেকানো: Honeypot
🔷 inputmode — মোবাইল কীবোর্ড নিয়ন্ত্রণ
inputmode Attribute মোবাইলে কোন কীবোর্ড আসবে তা নিয়ন্ত্রণ করে।
এটি type থেকে আলাদা — শুধু কীবোর্ড বদলায়, Validation বদলায় না।
| inputmode | মোবাইলে কীবোর্ড | কখন ব্যবহার |
|---|---|---|
text |
সাধারণ কীবোর্ড | ডিফল্ট |
numeric |
শুধু 0–9 | OTP, PIN, পোস্ট কোড |
decimal |
0–9 ও দশমিক বিন্দু | দাম, মাপ |
tel |
ফোন কীবোর্ড (*, #) | ফোন নম্বর |
email |
@ ও . সহজে পাওয়া যায় | ইমেইল |
url |
/ ও . সহজে পাওয়া যায় | ওয়েব ঠিকানা |
search |
Enter বোতাম "Search" | সার্চ বক্স |
none |
কোনো কীবোর্ড নেই | Custom কীবোর্ড |
🏗️ Semantic Markup
এই সেকশনে Semantic HTML-এর সব বিষয় — Layout Tags, Highlighting, Quotation, Citation, Text-level Semantics, Time, Code, Navigation এবং Accessibility — কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 Semantic Markup কী?
Semantic Markup মানে এমন HTML লেখা যেখানে প্রতিটি ট্যাগ শুধু কনটেন্ট ধারণ করে না — তার অর্থ ও উদ্দেশ্যও বোঝায়। সঠিক Semantic ট্যাগ ব্যবহারে Google, Screen Reader ও অন্য Developer সবাই পেজটা সহজে বুঝতে পারে।
| বিষয় | Non-Semantic | Semantic |
|---|---|---|
| Google বোঝে? | ❌ না | ✅ হ্যাঁ |
| Screen Reader? | ❌ navigate করতে পারে না | ✅ সহজে navigate করে |
| কোড পড়া? | কঠিন | ✅ সহজ |
| SEO? | দুর্বল | ✅ শক্তিশালী |
🔷 Layout Tags — পেজের কাঠামো তৈরি
<header> — উপরের অংশ header
<nav> — নেভিগেশন nav
<main> — মূল কনটেন্ট main
<section> — বিষয়ভিত্তিক অংশ section
<article> — স্বাধীন কনটেন্ট article
<aside> — পাশের তথ্য aside
<footer> — নিচের অংশ footer
সম্পূর্ণ Semantic পেজের কাঠামো: পূর্ণ উদাহরণ
🔷 Highlighting Changes — পরিবর্তন ও গুরুত্ব চিহ্নিত করা
<mark> — হাইলাইট করা (প্রাসঙ্গিক) mark
আউটপুট: তুমি সার্চ করেছিলে "HTML"। HTML হলো ওয়েবপেজের ভাষা।
<ins> ও <del> — সংযোজন ও বিয়োজন ins & del
আউটপুট: মূল্য: ১,০০০ টাকা ৮৫০ টাকা
<s> ও <u> — আর প্রযোজ্য নয় ও মনোযোগ আকর্ষণ s & u
<strong> ও <em> — গুরুত্ব ও জোর strong & em
🔷 Quotation ও Citation — উদ্ধৃতি ও সূত্র
<blockquote> — বড় উদ্ধৃতি blockquote
যে নিজেকে শেখায় না, সে অন্যকে শেখাতে পারে না।
<q> — ইনলাইন উদ্ধৃতি q
আউটপুট: স্টিভ জবস বলেছিলেন, Stay hungry, stay foolish.
<cite> — সৃজনশীল কাজের নাম cite
আউটপুট: আমি HTML ও ওয়েব ডিজাইন বইটি পড়ছি।
<abbr> — সংক্ষেপণ abbr
আউটপুট: আমি HTML শিখছি।
<dfn> — সংজ্ঞা dfn
🔷 Text-level Semantics — লেখায় অর্থ যোগ করা
<small> — ছোট মুদ্রণ small
<sub> ও <sup> — নিচে ও উপরে sub & sup
<span> — ইনলাইন কনটেইনার span
<wbr> — সম্ভাব্য লাইন ভাঙার স্থান wbr
🔷 <time> — তারিখ ও সময় Semantic উপায়ে
<time> ট্যাগ তারিখ ও সময় Semantic উপায়ে লেখে।
মানুষ যেকোনো ফরম্যাটে পড়তে পারে, কিন্তু কম্পিউটার datetime Attribute থেকে বোঝে।
🔷 Code ও Pre — প্রযুক্তিগত কনটেন্ট
<code> — ইনলাইন কোড code
<kbd> — কীবোর্ডের বোতাম kbd
আউটপুট: সংরক্ষণ করতে Ctrl + S চাপো।
<samp> — প্রোগ্রামের আউটপুট samp
<var> — চলক (Variable) var
🔷 Ruby Annotation — উচ্চারণ গাইড
<ruby> ট্যাগ লেখার উপরে বা নিচে ছোট উচ্চারণ গাইড দেখায়।
জাপানি, চীনা বা যেকোনো ভাষায় উচ্চারণ দেখাতে ব্যবহার হয়।
🔷 <address> — যোগাযোগের তথ্য
🔷 section vs article vs div — কখন কোনটা?
এই তিনটি নিয়ে সবচেয়ে বেশি বিভ্রান্তি হয়। সহজ প্রশ্ন দিয়ে ঠিক করো:
| প্রশ্ন | উত্তর হ্যাঁ হলে | উদাহরণ |
|---|---|---|
| একা অর্থপূর্ণ? RSS-এ পাঠানো যাবে? | <article> |
ব্লগ পোস্ট, পণ্য কার্ড |
| বিষয়ভিত্তিক অংশ, heading আছে? | <section> |
পেজের অধ্যায়, FAQ |
| শুধু CSS/JS-এর জন্য? | <div> |
Flex/Grid container |
| লিংকের গ্রুপ? | <nav> |
Menu, Breadcrumb |
| পেজ/section-এর উপরে? | <header> |
Logo, Navigation |
| পেজ/section-এর নিচে? | <footer> |
Copyright, Links |
| পেজের মূল কনটেন্ট? | <main> |
যেটা Print করবে |
| সম্পর্কিত কিন্তু আলাদা? | <aside> |
Sidebar, Tips |
🔷 দ্রুত রেফারেন্স — সব Semantic ট্যাগ এক নজরে
| বিভাগ | ট্যাগ | কাজ |
|---|---|---|
| Layout | <header> |
পেজ বা section-এর উপরের অংশ |
<nav> |
নেভিগেশন লিংক | |
<main> |
পেজের মূল কনটেন্ট (একটাই) | |
<section> |
বিষয়ভিত্তিক অংশ | |
<article> |
স্বাধীন কনটেন্ট | |
<aside> |
সম্পর্কিত পাশের তথ্য | |
<footer> |
পেজ বা section-এর নিচের অংশ | |
| Highlighting | <mark> |
হাইলাইট (প্রাসঙ্গিক) |
<ins> |
নতুন যোগ করা লেখা | |
<del> |
মুছে ফেলা লেখা | |
<s> |
আর প্রযোজ্য নয় | |
| Quotation | <blockquote> |
বড় উদ্ধৃতি (Block) |
<q> |
ছোট ইনলাইন উদ্ধৃতি | |
<cite> |
সৃজনশীল কাজের নাম | |
<abbr> |
সংক্ষেপণের পূর্ণরূপ | |
| Code | <code> |
ইনলাইন কোড |
<pre> |
হুবহু ফরম্যাট | |
<kbd> |
কীবোর্ড বোতাম | |
<samp> |
প্রোগ্রামের আউটপুট | |
<var> |
গণিত/প্রোগ্রামের চলক | |
| Text | <strong> |
গুরুত্বপূর্ণ |
<em> |
জোর দেওয়া | |
<small> |
পার্শ্ব তথ্য | |
<time> |
তারিখ ও সময় | |
| Other | <address> |
যোগাযোগের তথ্য |
<dfn> |
সংজ্ঞা | |
<ruby> |
উচ্চারণ গাইড |
🔍 Meta Tags এবং SEO
এই সেকশনে HTML Meta Tags, Open Graph, Twitter Cards, Canonical URL, Robots, Structured Data এবং SEO-র সব গুরুত্বপূর্ণ বিষয় কমেন্টসহ বিস্তারিত বোঝানো হয়েছে।
🔷 Meta Tag কী?
Meta Tag হলো HTML পেজের তথ্য বহনকারী ট্যাগ।
পেজে দেখা যায় না — কিন্তু Browser, Search Engine ও Social Media এগুলো পড়ে।
সব Meta Tag <head>-এর ভেতরে রাখতে হয়।
🔷 অপরিহার্য Meta Tags — সবসময় দিতে হবে
charset — ক্যারেক্টার এনকোডিং charset
viewport — মোবাইল ভিউ viewport
title — পেজের শিরোনাম title
description — পেজের বিবরণ description
🔷 SEO-সংক্রান্ত Meta Tags
robots — Search Engine নির্দেশনা robots
canonical — মূল পেজের ঠিকানা canonical
hreflang — বহুভাষিক পেজ hreflang
author ও keywords author
🔷 Open Graph — Facebook ও Social Media Preview
Open Graph Meta Tag দিলে Facebook, LinkedIn, WhatsApp-এ পেজ Share করলে সুন্দর Preview কার্ড দেখায় — শিরোনাম, ছবি ও বিবরণসহ।
Website-এর Open Graph: og:website
Article-এর Open Graph: og:article
আকার: কমপক্ষে 1200 × 630 pixel (1.91:1 অনুপাত)
ফাইল সাইজ: ৮ MB-এর কম
ফরম্যাট: JPG বা PNG (WebP সব জায়গায় সাপোর্ট হয় না)
পরীক্ষা করো: Facebook Sharing Debugger ব্যবহার করো
🔷 Twitter Cards — Twitter (X) Preview
Twitter Card Meta Tag দিলে Twitter (X)-এ পেজ Share করলে সুন্দর Preview কার্ড দেখায়।
🔷 সম্পূর্ণ <head> Section — সব Meta Tag একসাথে
🔷 Favicon — Browser-এর আইকন
🔷 Structured Data — JSON-LD (Rich Results)
Structured Data দিলে Google Search Result-এ Rich Results দেখায় — যেমন ★★★★☆ রেটিং, FAQ বা রেসিপির সময়। এটি Click-through Rate অনেক বাড়ায়।
Article Schema: Article
FAQPage Schema: FAQ
BreadcrumbList Schema: Breadcrumb
🔷 Preload, Prefetch ও DNS Prefetch — দ্রুত লোডিং
Resource Hints দিলে ব্রাউজার আগে থেকে রিসোর্স প্রস্তুত করে রাখে — পেজ লোডের সময় কম লাগে।
| rel | কাজ | কখন ব্যবহার |
|---|---|---|
preload |
এখনই লোড করো | ফন্ট, হিরো ছবি, Critical CSS |
prefetch |
পরে দরকার হবে | পরের পেজের রিসোর্স |
preconnect |
সংযোগ আগেই স্থাপন | Google Fonts, CDN |
dns-prefetch |
DNS আগেই resolve | Third-party ডোমেইন |
🔷 SEO Best Practices — সেরা অভ্যাস
On-Page SEO — HTML-এ যা করতে হবে: On-Page
Technical SEO Checklist: Checklist
- একই পেজে একাধিক
<h1> - ছবিতে
altনা দেওয়া - Keyword Stuffing (একই keyword বারবার দেওয়া)
- Duplicate Content (একই content একাধিক পেজে)
noindexদেওয়া গুরুত্বপূর্ণ পেজে- Canonical URL না দেওয়া
- mobile-friendly না হওয়া
- Unique
<title>(৫০-৬০ অক্ষর) - Unique
meta description(১৫০-১৬০ অক্ষর) - একটিই
<h1>— মূল keyword সহ - সব ছবিতে অর্থপূর্ণ
alt canonicalURL- Open Graph ও Twitter Card
- Structured Data (Article/FAQ/Breadcrumb)
- Mobile-friendly viewport
- HTTPS ব্যবহার
- Fast loading (preload, lazy loading)
🔷 দ্রুত রেফারেন্স — সব Meta Tag এক নজরে
| Meta Tag | কাজ | দরকার? |
|---|---|---|
<meta charset="UTF-8"> |
ক্যারেক্টার এনকোডিং | ✅ অবশ্যই |
<meta name="viewport"...> |
মোবাইল ভিউ | ✅ অবশ্যই |
<title> |
পেজের শিরোনাম | ✅ অবশ্যই |
name="description" |
Search Result-এর বিবরণ | ✅ অবশ্যই |
name="robots" |
Crawling নির্দেশনা | দরকারে |
rel="canonical" |
মূল পেজের URL | ✅ সবসময় |
name="author" |
লেখকের নাম | ভালো অভ্যাস |
name="theme-color" |
Browser bar-এর রঙ | ঐচ্ছিক |
property="og:*" |
Facebook/LinkedIn Preview | ✅ সবসময় |
name="twitter:*" |
Twitter Preview | ✅ সবসময় |
rel="icon" |
Favicon | ✅ সবসময় |
rel="preload" |
আগে থেকে লোড | Performance-এ |
rel="preconnect" |
আগেই সংযোগ | Third-party-তে |
rel="hreflang" |
বহুভাষিক পেজ | একাধিক ভাষায় |
script[ld+json] |
Structured Data | Rich Results-এর জন্য |
🚀 HTML Expert Essentials — দক্ষ ডেভেলপার হওয়ার পূর্ণ গাইড
CSS, JavaScript, Icons, Fonts, File Path, Responsive, Graphics, APIs সহ HTML Expert হতে যা যা জানতে হবে — সব কিছু কমেন্টসহ এক সেকশনে।
🔷 CSS যুক্ত করা — ৩টি উপায়
উপায় ১ — Inline CSS: কম ভালো
উপায় ২ — Internal CSS: একটি পেজের জন্য
উপায় ৩ — External CSS: সঠিক পদ্ধতি ✅
| পদ্ধতি | কোথায় | সুবিধা | কখন ব্যবহার |
|---|---|---|---|
| Inline | style Attribute-এ | দ্রুত | Email, JS dynamic |
| Internal | <style> ট্যাগে | একটি পেজ | Landing page |
| External ✅ | আলাদা .css ফাইল | Cache, পুনর্ব্যবহার | সব প্রজেক্টে |
🔷 JavaScript যুক্ত করা — defer, async ও module
defer vs async — পার্থক্য: Loading
noscript — JS বন্ধ থাকলে: noscript
| Attribute | কখন লোড | কখন চলে | ক্রম |
|---|---|---|---|
| (কোনো Attribute নেই) | HTML parse থামিয়ে | সাথে সাথে | ✅ ঠিক আছে |
defer |
HTML parse চলার সময় | HTML parse শেষে | ✅ ঠিক আছে |
async |
HTML parse চলার সময় | ডাউনলোড শেষে | ❌ নিশ্চিত নয় |
type="module" |
HTML parse চলার সময় | HTML parse শেষে | ✅ ঠিক আছে |
🔷 Icons — Favicon ও Icon Library
Favicon — ব্রাউজার ট্যাবের আইকন: Favicon
Icon Library — Font Awesome ও অন্যান্য: Icon Library
🔷 Fonts — ওয়েবে ফন্ট যুক্ত করা
Google Fonts — বিনামূল্যে ওয়েব ফন্ট: Google Fonts
@font-face — নিজের ফন্ট ফাইল: @font-face
System Font Stack — সবচেয়ে দ্রুত: System Fonts
🔷 Page Title ও <head> Management
সঠিক ক্রমে head সাজানো: head Order
🔷 HTML Buttons — বোতামের সব ধরন ও সঠিক ব্যবহার
button ট্যাগ — সঠিক পদ্ধতি: button
a vs button — কখন কোনটা: a vs button
🔷 File Paths — ফাইলের ঠিকানার ধরন
Relative Path — বর্তমান ফোল্ডার থেকে: Relative
Root-relative Path — / দিয়ে শুরু: Root-relative
Absolute Path — পুরো URL: Absolute
| ধরন | উদাহরণ | কখন ব্যবহার |
|---|---|---|
| Relative | css/style.css |
একই প্রজেক্টের ফাইল |
| উপরে যাওয়া | ../images/logo.png |
সাবফোল্ডার থেকে উপরে |
| Root-relative | /css/style.css |
সব পেজে একই path |
| Absolute | https://example.com/style.css |
External resource |
🔷 Responsive HTML — সব ডিভাইসে সুন্দর পেজ
picture — Device অনুযায়ী আলাদা ছবি: picture
srcset ও sizes — সঠিক রেজোলিউশনের ছবি: srcset
🔷 HTML Graphics — Canvas ও SVG
<canvas> — JavaScript দিয়ে আঁকা: canvas
<svg> — Vector গ্রাফিক্স: svg
| বিষয় | Canvas | SVG |
|---|---|---|
| ধরন | Raster (pixel) | Vector (গণনা) |
| বড় করলে? | ঝাপসা হয় | পরিষ্কার থাকে ✅ |
| CSS/JS নিয়ন্ত্রণ | শুধু JS | CSS ও JS দুটোই ✅ |
| Performance | জটিল দৃশ্যে ভালো | সহজ গ্রাফিক্সে ভালো ✅ |
| কোথায় ব্যবহার | গেম, Image Processing | আইকন, লোগো, চার্ট ✅ |
🔷 HTML APIs — ব্রাউজারের Built-in শক্তি
Geolocation API — অবস্থান জানা: Location
Web Storage API — Browser-এ ডেটা রাখা: Storage
Drag and Drop API — টেনে নিয়ে যাওয়া: Drag & Drop
History API — URL নিয়ন্ত্রণ: History
Clipboard API — Copy ও Paste: Clipboard
🔷 HTML Performance — পেজ দ্রুত লোড করা
🔷 <template> ও Web Components — পুনর্ব্যবহারযোগ্য কনটেন্ট
<template> — লুকানো কনটেন্ট টেমপ্লেট: template
Custom Elements — নিজের HTML ট্যাগ তৈরি: Custom Elements
🔷 HTML Best Practices — Expert-এর অভ্যাস
1. DOCTYPE ও lang সবসময়: ভিত্তি
2. Void Element-এ / না দেওয়া: HTML5
3. Boolean Attribute-এ value না দেওয়া: Clean
4. Validate করো: Quality
5. পেজের সম্পূর্ণ কাঠামো — Expert পদ্ধতি: পূর্ণ উদাহরণ
🔷 দ্রুত রেফারেন্স — Expert HTML Checklist
| বিভাগ | করণীয় | কেন? |
|---|---|---|
| ভিত্তি | <!DOCTYPE html> ও lang |
Browser mode ও Accessibility |
| charset ও viewport | ভাষা ও Mobile সাপোর্ট | |
| Semantic HTML ট্যাগ | SEO ও Accessibility | |
| Performance | CSS defer / JS defer |
দ্রুত পেজ লোড |
preconnect, preload |
Resource আগে আনো | |
loading="lazy" |
দরকারি ছবি আগে লোড | |
| SEO | Title ৫০-৬০ অক্ষর | Search Result-এ দেখায় |
| Description ১৫০-১৬০ অক্ষর | Search Snippet | |
| Open Graph Tags | Social Share Preview | |
| Accessibility | সব ছবিতে alt |
Screen Reader |
প্রতিটি input-এ label |
Form Accessibility | |
| Skip Link ও Focus Visible | Keyboard Navigation | |
| Security | ফর্মে POST + HTTPS |
ডেটা সুরক্ষা |
iframe-এ sandbox |
XSS প্রতিরোধ | |
| Validation | W3C Validator দিয়ে চেক | HTML Error মুক্ত |
🧰 Developer Toolkit — ওয়েব ডেভেলপারের হাতিয়ার
HTML Events, URL Encoding, Language Codes, HTTP Messages, HTTP Methods, VSCode Shortcuts এবং Emojis — প্রতিদিনের কাজে লাগে এমন সব জরুরি রেফারেন্স এক জায়গায়।
🔷 HTML Events — ব্রাউজারের ঘটনা
HTML Event হলো ব্রাউজারে যা ঘটে তার বিজ্ঞপ্তি। JavaScript দিয়ে এই ঘটনাগুলো ধরে কাজ করা যায়।
Event যুক্ত করার উপায়: Event Binding
Mouse Events — মাউসের ঘটনা: Mouse
Keyboard Events — কীবোর্ডের ঘটনা: Keyboard
Form Events — ফর্মের ঘটনা: Form
Window ও Document Events: Window
অন্যান্য গুরুত্বপূর্ণ Events: Other
| Event | কখন ঘটে | Element |
|---|---|---|
click |
ক্লিক করলে | যেকোনো |
input |
টাইপ করার সাথে সাথে | input, textarea |
change |
মান পরিবর্তন হলে | input, select |
submit |
ফর্ম জমা দিলে | form |
focus / blur |
focus এলে / চলে গেলে | input, button |
DOMContentLoaded |
DOM প্রস্তুত হলে | document |
load |
সব resource লোড হলে | window, img |
scroll |
স্ক্রোল করলে | window, element |
resize |
উইন্ডো সাইজ বদলালে | window |
touchstart |
মোবাইলে স্পর্শ করলে | যেকোনো |
touchend |
মোবাইলে স্পর্শ ছাড়লে | যেকোনো |
dragstart |
টেনে নেওয়া শুরু হলে | draggable |
drop |
ছেড়ে দিলে | drop zone |
error |
লোড ব্যর্থ হলে | img, script |
copy / paste |
কপি / পেস্ট করলে | যেকোনো |
🔷 URL Encoding — URL-এ বিশেষ অক্ষর
URL-এ বাংলা, স্পেস বা বিশেষ অক্ষর দিতে হলে URL Encoding ব্যবহার করতে হয় — % দিয়ে ASCII কোডে রূপান্তর।
সাধারণ URL Encoding: Encoded Chars
গুরুত্বপূর্ণ URL Encoded অক্ষর:
| অক্ষর | Encoded | অক্ষর | Encoded |
|---|---|---|---|
| স্পেস ( ) | %20 বা + |
! |
%21 |
# |
%23 |
" |
%22 |
% |
%25 |
' |
%27 |
& |
%26 |
( |
%28 |
+ |
%2B |
) |
%29 |
/ |
%2F |
: |
%3A |
= |
%3D |
? |
%3F |
@ |
%40 |
[ |
%5B |
\ |
%5C |
] |
%5D |
{ |
%7B |
} |
%7D |
encodeURIComponent() = Query parameter-এর value encode করতে (/,
?, & বদলায়)encodeURI() = পুরো URL encode করতে (/, ?, &
বদলায় না)
🔷 Language Codes — HTML-এ ভাষার কোড
lang Attribute-এ সঠিক Language Code দিলে
Screen Reader সঠিক উচ্চারণে পড়ে এবং
Google সঠিক দেশের ব্যবহারকারীকে পেজ দেখায়।
জনপ্রিয় Language Code:
| কোড | ভাষা | কোড | ভাষা |
|---|---|---|---|
bn |
বাংলা | en |
ইংরেজি |
bn-BD |
বাংলাদেশি বাংলা | en-US |
আমেরিকান ইংরেজি |
ar |
আরবি | en-GB |
ব্রিটিশ ইংরেজি |
hi |
হিন্দি | fr |
ফরাসি |
ur |
উর্দু | de |
জার্মান |
zh |
চীনা | es |
স্পেনিশ |
ja |
জাপানি | pt |
পর্তুগিজ |
ko |
কোরিয়ান | ru |
রাশিয়ান |
tr |
তুর্কি | it |
ইতালিয়ান |
fa |
ফার্সি | nl |
ডাচ |
🔷 HTTP Methods — সার্ভারে অনুরোধের ধরন
HTTP Method ব্রাউজার বা App-কে বলে
সার্ভারে কোন ধরনের কাজ করতে হবে।
HTML ফর্মে GET ও POST সরাসরি ব্যবহার করা যায়।
| Method | কাজ | CRUD | Body আছে? | Safe? |
|---|---|---|---|---|
GET |
ডেটা আনো | Read | ❌ | ✅ হ্যাঁ |
POST |
নতুন তৈরি করো | Create | ✅ | ❌ না |
PUT |
সম্পূর্ণ আপডেট | Update | ✅ | ❌ না |
PATCH |
আংশিক আপডেট | Update | ✅ | ❌ না |
DELETE |
মুছে দাও | Delete | ঐচ্ছিক | ❌ না |
HEAD |
শুধু Header | — | ❌ | ✅ হ্যাঁ |
OPTIONS |
সাপোর্টেড Method | — | ❌ | ✅ হ্যাঁ |
🔷 HTTP Status Codes — সার্ভারের জবাব
HTTP Status Code হলো সার্ভারের Request-এর জবাব। ব্রাউজারের DevTools-এ Network ট্যাবে এগুলো দেখা যায়।
2xx — সফল Response: Success ✅
| কোড | নাম | মানে | কোথায় দেখা যায় |
|---|---|---|---|
| 200 | OK | Request সফল হয়েছে | পেজ লোড, GET সফল |
| 201 | Created | নতুন resource তৈরি হয়েছে | POST সফল (নতুন user) |
| 204 | No Content | সফল কিন্তু কোনো body নেই | DELETE সফল |
3xx — Redirection: Redirect ↗
| কোড | নাম | মানে | কোথায় দেখা যায় |
|---|---|---|---|
| 301 | Moved Permanently | স্থায়ীভাবে নতুন URL-এ গেছে | http → https redirect |
| 302 | Found (Temp Redirect) | সাময়িকভাবে নতুন URL-এ | লগইনের পর redirect |
| 304 | Not Modified | Cache-এ আছে, নতুন করে দরকার নেই | Browser Cache |
4xx — Client Error: Client Error ❌
| কোড | নাম | মানে | কোথায় দেখা যায় |
|---|---|---|---|
| 400 | Bad Request | Request ভুল ফরম্যাটে | ভুল ডেটা পাঠালে |
| 401 | Unauthorized | লগইন করা হয়নি | Token ছাড়া API |
| 403 | Forbidden | অনুমতি নেই | Admin পেজে সাধারণ User |
| 404 | Not Found | পেজ বা resource নেই | ভুল URL-এ গেলে |
| 405 | Method Not Allowed | এই Method সাপোর্ট করে না | GET-only endpoint-এ POST |
| 422 | Unprocessable Entity | Validation ব্যর্থ হয়েছে | ফর্ম ভ্যালিডেশন Error |
| 429 | Too Many Requests | অনেক বেশি Request | Rate Limit অতিক্রম |
5xx — Server Error: Server Error 🔥
| কোড | নাম | মানে | কোথায় দেখা যায় |
|---|---|---|---|
| 500 | Internal Server Error | সার্ভারে অজানা সমস্যা | Bug বা Crash |
| 502 | Bad Gateway | Proxy বা Gateway সমস্যা | Nginx/Load Balancer সমস্যা |
| 503 | Service Unavailable | সার্ভার বন্ধ বা ব্যস্ত | Maintenance, Overload |
| 504 | Gateway Timeout | সার্ভার সময়মতো জবাব দেয়নি | ধীর Database বা API |
🔷 VSCode Keyboard Shortcuts — দ্রুত কোড লেখার শর্টকাট
VSCode-এর Keyboard Shortcut জানলে মাউসে হাত না দিয়েই দ্রুত কোড লেখা যায়। Windows/Linux: Ctrl | Mac: ⌘ Cmd
সাধারণ কাজ: General
| কাজ | Windows / Linux | Mac |
|---|---|---|
| ফাইল সংরক্ষণ | Ctrl + S | ⌘ + S |
| সব সংরক্ষণ | Ctrl + K S | ⌘ + Alt + S |
| Undo | Ctrl + Z | ⌘ + Z |
| Redo | Ctrl + Shift + Z | ⌘ + Shift + Z |
| কমান্ড প্যালেট | Ctrl + Shift + P | ⌘ + Shift + P |
| ফাইল খোঁজা | Ctrl + P | ⌘ + P |
| নতুন ফাইল | Ctrl + N | ⌘ + N |
| Terminal খোলা | Ctrl + ` | ⌘ + ` |
| Settings খোলা | Ctrl + , | ⌘ + , |
কোড এডিটিং: Editing
| কাজ | Windows / Linux | Mac |
|---|---|---|
| লাইন Comment করা/সরানো | Ctrl + / | ⌘ + / |
| Block Comment | Shift + Alt + A | Shift + ⌥ + A |
| লাইন উপরে নেওয়া | Alt + ↑ | ⌥ + ↑ |
| লাইন নিচে নেওয়া | Alt + ↓ | ⌥ + ↓ |
| লাইন কপি করে নিচে বসানো | Shift + Alt + ↓ | Shift + ⌥ + ↓ |
| লাইন মুছে দাও | Ctrl + Shift + K | ⌘ + Shift + K |
| কোড Format করো | Shift + Alt + F | Shift + ⌥ + F |
| ইন্ডেন্ট বাড়াও | Tab | Tab |
| ইন্ডেন্ট কমাও | Shift + Tab | Shift + Tab |
| একাধিক cursor | Alt + ক্লিক | ⌥ + ক্লিক |
| পরবর্তী মিল নির্বাচন | Ctrl + D | ⌘ + D |
| সব মিল নির্বাচন | Ctrl + Shift + L | ⌘ + Shift + L |
নেভিগেশন: Navigation
| কাজ | Windows / Linux | Mac |
|---|---|---|
| নির্দিষ্ট লাইনে যাও | Ctrl + G | ⌘ + G |
| খোঁজো (Find) | Ctrl + F | ⌘ + F |
| খুঁজে বদলাও (Replace) | Ctrl + H | ⌘ + H |
| সব ফাইলে খোঁজো | Ctrl + Shift + F | ⌘ + Shift + F |
| সাইডবার লুকাও/দেখাও | Ctrl + B | ⌘ + B |
| Zen Mode (পূর্ণ স্ক্রিন) | Ctrl + K Z | ⌘ + K Z |
| ট্যাব বন্ধ করো | Ctrl + W | ⌘ + W |
| পরের ট্যাবে যাও | Ctrl + Tab | ⌘ + Shift + ] |
| Split Editor | Ctrl + \ | ⌘ + \ |
🔷 Emojis — HTML-এ Emoji ব্যবহার
Emoji হলো Unicode অক্ষর — HTML-এ সরাসরি লেখা যায় বা HTML Entity কোড দিয়ে যোগ করা যায়।
Emoji যুক্ত করার উপায়: Methods
দরকারী Emoji ও HTML Codes:
| Emoji | HTML Code | ব্যবহার | Emoji | HTML Code | ব্যবহার |
|---|---|---|---|---|---|
| 😀 | 😀 |
হাসি | ❤️ | ❤ |
ভালোবাসা |
| ✅ | ✅ |
সফল/সঠিক | ❌ | ❌ |
ব্যর্থ/ভুল |
| ⚠️ | ⚠ |
সতর্কতা | ℹ️ | ℹ |
তথ্য |
| 🎉 | 🎉 |
উৎসব | 🔥 | 🔥 |
জনপ্রিয় |
| ⭐ | ⭐ |
রেটিং | ★ | ★ |
ভরা তারা |
| ☆ | ☆ |
ফাঁকা তারা | 🏠 | 🏠 |
হোম |
| 📱 | 📱 |
মোবাইল | 💻 | 💻 |
ল্যাপটপ |
| 🔍 | 🔍 |
সার্চ | 📧 | 📧 |
ইমেইল |
| 🔒 | 🔒 |
লক/নিরাপদ | 🔓 | 🔓 |
আনলক |
| ⬆️ | ⬆ |
উপরে | ⬇️ | ⬇ |
নিচে |
| → | → |
ডানে তীর | ← | ← |
বাঁয়ে তীর |
| © | © |
কপিরাইট | ® | ® |
Registered |
aria-hidden="true" দাও।
তথ্যবহুল Emoji-তে role="img" aria-label="..." দাও।
🔷 দ্রুত রেফারেন্স — সব বিষয় এক নজরে
| বিষয় | মূল ধারণা | মনে রাখার সূত্র |
|---|---|---|
| HTML Events | ব্রাউজারে যা ঘটে তার বিজ্ঞপ্তি | addEventListener ব্যবহার করো |
| URL Encoding | বিশেষ অক্ষর % দিয়ে encode | স্পেস = %20, & = %26 |
| Language Codes | ISO 639-1 ভাষার কোড | বাংলা = bn, বাংলাদেশ = bn-BD |
| HTTP Methods | সার্ভারে কাজের ধরন | GET=পড়া, POST=তৈরি, PUT=আপডেট, DELETE=মুছা |
| HTTP Status | সার্ভারের জবাবের কোড | 2xx=সফল, 4xx=Client ভুল, 5xx=Server ভুল |
| VSCode Shortcuts | দ্রুত কোড লেখার শর্টকাট | Ctrl+/=Comment, Alt+↕=Move |
| Emojis | Unicode অক্ষর | ✅=✅, aria-hidden সাজসজ্জায় |
📖 HTML Quick Reference — সম্পূর্ণ ট্যাগ রেফারেন্স
HTML-এর সব গুরুত্বপূর্ণ ট্যাগ, তাদের সংজ্ঞা, ব্যবহার এবং সংক্ষিপ্ত উদাহরণ — এক জায়গায়।
🔷 Document Structure — ডকুমেন্টের কাঠামো
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<!DOCTYPE html> |
ডকুমেন্টের ধরন ঘোষণা | HTML ফাইলের একদম শুরুতে | <!DOCTYPE html> |
<html> |
পুরো HTML ডকুমেন্টের মূল উপাদান | DOCTYPE-এর পরে, সব কিছু এর ভেতরে | <html lang="bn">...</html> |
<head> |
পেজের মেটাডেটা ধারণ করে | title, meta, link, script রাখতে | <head><title>পেজ</title></head> |
<title> |
ব্রাউজার ট্যাবে পেজের শিরোনাম | head-এর ভেতরে, SEO-র জন্য গুরুত্বপূর্ণ | <title>DevShikhi</title> |
<body> |
পেজে দৃশ্যমান সব কনটেন্ট | head-এর পরে, সব দৃশ্যমান কনটেন্ট এখানে | <body><h1>স্বাগতম</h1></body> |
<meta> |
পেজ সম্পর্কে মেটাডেটা | charset, viewport, description দিতে | <meta charset="UTF-8"> |
<link> |
বাইরের রিসোর্সের সাথে সংযোগ | CSS ফাইল, Favicon যুক্ত করতে | <link rel="stylesheet" href="style.css"> |
<style> |
HTML-এর ভেতরে CSS লেখার জায়গা | Internal CSS দিতে | <style>p { color: red; }</style> |
<script> |
JavaScript কোড বা ফাইল যুক্ত করা | JS লিখতে বা .js ফাইল লিংক করতে | <script src="app.js" defer></script> |
<noscript> |
JS বন্ধ থাকলে যা দেখাবে | JS-নির্ভর সাইটে fallback হিসেবে | <noscript>JS চালু করুন</noscript> |
<base> |
পেজের সব relative URL-এর ভিত্তি URL | head-এ, সব লিংকের শুরু URL ঠিক করতে | <base href="https://example.com/"> |
🔷 Semantic Layout — কাঠামো ও বিভাজন
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<header> |
পেজ বা section-এর উপরের অংশ | লোগো, নেভিগেশন রাখতে | <header><nav>...</nav></header> |
<nav> |
নেভিগেশন লিংকের সমষ্টি | মূল মেনু, Breadcrumb | <nav><a href="/">হোম</a></nav> |
<main> |
পেজের মূল অনন্য কনটেন্ট | পেজে মাত্র একটি, মূল বিষয়বস্তু | <main><h1>টিউটোরিয়াল</h1></main> |
<section> |
বিষয়ভিত্তিক স্বতন্ত্র অংশ | অধ্যায়, পেজের একটি বিভাগ | <section><h2>পরিচিতি</h2></section> |
<article> |
স্বাধীনভাবে বিতরণযোগ্য কনটেন্ট | ব্লগ পোস্ট, নিউজ, মন্তব্য | <article><h2>পোস্ট</h2></article> |
<aside> |
মূল কনটেন্টের পাশের সম্পর্কিত তথ্য | Sidebar, Related Posts, Tips | <aside><h2>সম্পর্কিত</h2></aside> |
<footer> |
পেজ বা section-এর নিচের অংশ | কপিরাইট, লিংক, লেখকের তথ্য | <footer><p>© ২০২৬</p></footer> |
<div> |
সাধারণ Block-level কনটেইনার | CSS Layout, JS-এর জন্য গ্রুপ করা | <div class="card">...</div> |
<span> |
সাধারণ Inline কনটেইনার | লেখার মধ্যে অংশ আলাদা করা | <p>আমার <span>নাম</span></p> |
<address> |
যোগাযোগের তথ্য | ইমেইল, ফোন, ঠিকানা | <address>ঢাকা, বাংলাদেশ</address> |
🔷 Heading ও Text — শিরোনাম ও লেখা
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<h1> |
সবচেয়ে গুরুত্বপূর্ণ শিরোনাম | পেজে মাত্র একটি, মূল শিরোনাম | <h1>HTML Tutorial</h1> |
<h2> |
দ্বিতীয় স্তরের শিরোনাম | বড় সেকশনের শিরোনাম | <h2>HTML কী?</h2> |
<h3> |
তৃতীয় স্তরের শিরোনাম | উপসেকশনের শিরোনাম | <h3>ট্যাগ কী?</h3> |
<h4>–<h6> |
চতুর্থ থেকে ষষ্ঠ স্তরের শিরোনাম | আরও গভীর উপবিভাগ | <h4>বিস্তারিত</h4> |
<p> |
অনুচ্ছেদ (Paragraph) | সাধারণ লেখার ব্লক | <p>HTML শেখা মজার।</p> |
<br> |
লাইন বিরতি (Self-closing) | একই p-এ নতুন লাইনে যেতে | প্রথম লাইন<br>দ্বিতীয় লাইন |
<hr> |
অনুভূমিক বিভাজক রেখা (Self-closing) | দুটি বিভাগের মাঝে বিভাজন | <p>উপরে</p><hr><p>নিচে</p> |
<pre> |
হুবহু ফরম্যাট ধরে রাখে | কোড ব্লক, ছক, কবিতা | <pre> ইন্ডেন্টসহ লেখা</pre> |
<blockquote> |
দীর্ঘ উদ্ধৃতি (Block) | অন্য উৎস থেকে বড় উদ্ধৃতি | <blockquote>উদ্ধৃতি...</blockquote> |
<q> |
সংক্ষিপ্ত ইনলাইন উদ্ধৃতি | লেখার ভেতরে ছোট quote | সে বলল <q>HTML শেখো</q> |
🔷 Text Formatting — লেখার ধরন পরিবর্তন
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<strong> |
গুরুত্বপূর্ণ লেখা — Bold ও Semantic | সতর্কতা, জরুরি তথ্য | <strong>সতর্কতা</strong> |
<em> |
জোর দেওয়া লেখা — Italic ও Semantic | বিশেষ শব্দ, জোর দেওয়া | <em>অবশ্যই</em> করতে হবে। |
<b> |
শুধু Bold (কোনো Semantic অর্থ নেই) | পণ্যের নাম, keyword | <b>মোটা লেখা</b> |
<i> |
শুধু Italic (কোনো Semantic অর্থ নেই) | বইয়ের নাম, বৈজ্ঞানিক নাম | <i>বাঁকা লেখা</i> |
<u> |
Underline — আন্ডারলাইন | বানান ভুল চিহ্নিত করা | <u>দাগানো লেখা</u> |
<s> |
Strikethrough — আর প্রযোজ্য নয় | পুরনো দাম, শেষ হয়ে যাওয়া তথ্য | <s>১০০০ টাকা</s> |
<del> |
মুছে ফেলা লেখা — সম্পাদনায় বিয়োজন | ডকুমেন্ট সংশোধন, দাম পরিবর্তন | <del>পুরনো দাম</del> |
<ins> |
নতুন যোগ করা লেখা — সম্পাদনায় সংযোজন | ডকুমেন্ট সংশোধন, নতুন দাম | <ins>নতুন দাম</ins> |
<mark> |
হাইলাইট করা লেখা | সার্চ ফলাফল, গুরুত্বপূর্ণ অংশ | <mark>গুরুত্বপূর্ণ</mark> |
<small> |
ছোট লেখা — পার্শ্ব তথ্য | কপিরাইট, ফুটনোট, শর্ত | <small>© ২০২৬</small> |
<sub> |
নিচে ছোট লেখা (Subscript) | রসায়নের সূত্র | H<sub>2</sub>O |
<sup> |
উপরে ছোট লেখা (Superscript) | গণিতের সূত্র, ফুটনোট রেফারেন্স | x<sup>2</sup> |
<abbr> |
সংক্ষেপণের পূর্ণরূপ | HTML, CSS, API — hover-এ tooltip | <abbr title="HyperText">HTML</abbr> |
<cite> |
সৃজনশীল কাজের নাম | বই, সিনেমা, গবেষণাপত্রের নাম | <cite>HTML বই</cite> |
<dfn> |
কোনো শব্দের সংজ্ঞা | প্রথমবার কোনো শব্দ সংজ্ঞায়িত করতে | <dfn>HTML</dfn> হলো...</dfn> |
<time> |
Semantic তারিখ বা সময় | আর্টিকেলের তারিখ, ইভেন্টের সময় | <time datetime="2026-05-18">১৮ মে</time> |
<wbr> |
সম্ভাব্য Word Break-এর স্থান | লম্বা URL বা শব্দ ভাঙতে | example.com/<wbr>long-path |
🔷 Link ও Media — সংযোগ ও মিডিয়া
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<a> |
Hyperlink — এক পেজ থেকে আরেকটিতে লিংক | নেভিগেশন, বাইরের সাইট, ডাউনলোড | <a href="/about">আমাদের সম্পর্কে</a> |
<img> |
ছবি দেখানো (Self-closing) | ফটো, লোগো, আইকন | <img src="logo.png" alt="লোগো"> |
<figure> |
ছবি বা মিডিয়া ও ক্যাপশনের গ্রুপ | আর্টিকেলের ছবি, ডায়াগ্রাম | <figure><img><figcaption>...</figcaption></figure>
|
<figcaption> |
figure-এর ক্যাপশন বা শিরোনাম | ছবির বিবরণ বা সূত্র | <figcaption>চিত্র ১: মানচিত্র</figcaption> |
<audio> |
অডিও ফাইল বাজানো | পডকাস্ট, গান, ভয়েস রেকর্ড | <audio src="song.mp3" controls></audio> |
<video> |
ভিডিও ফাইল দেখানো | টিউটোরিয়াল ভিডিও, বিজ্ঞাপন | <video src="clip.mp4" controls></video> |
<source> |
audio/video-এর একাধিক সোর্স ফরম্যাট | ব্রাউজার সামঞ্জস্যতার জন্য | <source src="song.mp3" type="audio/mpeg"> |
<track> |
ভিডিওর Subtitle বা Caption | শ্রবণপ্রতিবন্ধীদের জন্য সাবটাইটেল | <track kind="captions" src="bn.vtt" srclang="bn"> |
<iframe> |
অন্য পেজ ভেতরে দেখানো | YouTube ভিডিও, Google Map | <iframe src="https://youtube.com/embed/..."></iframe> |
<picture> |
ডিভাইস অনুযায়ী আলাদা ছবি | Responsive ছবি, WebP Fallback |
<picture><source srcset="img.webp"><img src="img.jpg"></picture>
|
<canvas> |
JavaScript দিয়ে 2D/3D গ্রাফিক্স আঁকার জায়গা | গেম, চার্ট, অ্যানিমেশন | <canvas id="c" width="400" height="200"></canvas> |
<svg> |
Scalable Vector Graphics | আইকন, লোগো, ডায়াগ্রাম | <svg><circle cx="50" cy="50" r="40"/></svg> |
🔷 Lists — তালিকা
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<ul> |
বুলেট পয়েন্টের তালিকা (অক্রমিক) | নেভিগেশন মেনু, feature তালিকা | <ul><li>HTML</li></ul> |
<ol> |
নম্বরযুক্ত তালিকা (ক্রমিক) | ধাপের নির্দেশনা, রেসিপি | <ol><li>প্রথম ধাপ</li></ol> |
<li> |
তালিকার একটি আইটেম | ul বা ol-এর ভেতরে প্রতিটি আইটেম | <li>তালিকার আইটেম</li> |
<dl> |
বিবরণ তালিকার কনটেইনার | Glossary, FAQ, Dictionary | <dl><dt>HTML</dt><dd>ভাষা</dd></dl> |
<dt> |
বিবরণ তালিকার শব্দ বা বিষয় | dl-এর ভেতরে সংজ্ঞার শিরোনাম | <dt>CSS</dt> |
<dd> |
বিবরণ তালিকার বিবরণ | dt-এর ব্যাখ্যা বা বিবরণ | <dd>স্টাইলিং ভাষা</dd> |
🔷 Table — ছক
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<table> |
ছকের মূল কনটেইনার | Tabular ডেটা দেখাতে | <table>...</table> |
<caption> |
ছকের শিরোনাম বা বিবরণ | table-এর প্রথমেই, Accessibility-র জন্য | <caption>বিক্রয় রিপোর্ট</caption> |
<thead> |
ছকের শিরোনাম সারির গ্রুপ | কলামের শিরোনাম সারি | <thead><tr><th>নাম</th></tr></thead> |
<tbody> |
ছকের মূল ডেটার গ্রুপ | ডেটা সারি ধারণ করে | <tbody><tr><td>তানভীর</td></tr></tbody> |
<tfoot> |
ছকের সারসংক্ষেপ সারির গ্রুপ | মোট বা সারসংক্ষেপ সারি | <tfoot><tr><td>মোট</td></tr></tfoot> |
<tr> |
ছকের একটি সারি (Table Row) | thead, tbody, tfoot-এর ভেতরে | <tr><td>ডেটা</td></tr> |
<th> |
ছকের শিরোনাম ঘর (Bold, মাঝখানে) | কলাম বা সারির শিরোনাম | <th scope="col">নাম</th> |
<td> |
ছকের সাধারণ ডেটা ঘর | মূল ডেটা বসাতে | <td colspan="2">মোট</td> |
<colgroup> |
কলামের গ্রুপ | নির্দিষ্ট কলামে CSS দিতে | <colgroup><col style="width:50%"></colgroup> |
🔷 Form — ফর্ম
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<form> |
ফর্মের মূল কনটেইনার | লগইন, রেজিস্ট্রেশন, যোগাযোগ ফর্ম | <form action="/login" method="POST"></form> |
<input> |
বিভিন্ন ধরনের ইনপুট ফিল্ড (Self-closing) | টেক্সট, ইমেইল, পাসওয়ার্ড, চেকবক্স | <input type="email" name="email" required> |
<label> |
ইনপুটের শিরোনাম বা বিবরণ | Accessibility-র জন্য input-এর সাথে যুক্ত | <label for="email">ইমেইল:</label> |
<textarea> |
বহু লাইনের টেক্সট ইনপুট | মন্তব্য, বার্তা, বিবরণ | <textarea name="msg" rows="4"></textarea> |
<select> |
ড্রপডাউন নির্বাচন তালিকা | বিভাগ, দেশ, শ্রেণী নির্বাচন | <select name="city"><option>ঢাকা</option></select> |
<option> |
ড্রপডাউনের একটি আইটেম | select-এর ভেতরে প্রতিটি বিকল্প | <option value="dhaka">ঢাকা</option> |
<optgroup> |
option-গুলোকে গ্রুপে ভাগ করা | বিভাগীয় ড্রপডাউন তৈরিতে | <optgroup label="Frontend">...</optgroup> |
<button> |
ক্লিকযোগ্য বোতাম | Submit, Reset, বা Custom Action | <button type="submit">জমা দিন</button> |
<fieldset> |
সম্পর্কিত ফর্ম ফিল্ডের গ্রুপ | বড় ফর্মের অংশ ভাগ করতে | <fieldset><legend>ব্যক্তিগত তথ্য</legend></fieldset> |
<legend> |
fieldset-এর শিরোনাম | fieldset-এর প্রথমেই | <legend>যোগাযোগের তথ্য</legend> |
<datalist> |
ইনপুটে Auto-suggest তালিকা | শহর, দেশ, ব্রাউজারের নাম | <datalist id="cities"><option value="ঢাকা"></datalist> |
<output> |
ফর্মের গণনার ফলাফল দেখানো | মোট দাম, বয়স গণনা | <output name="total" for="price qty">100</output> |
<meter> |
নির্দিষ্ট পরিসরের মান দেখানো | ডিস্ক ব্যবহার, পাসওয়ার্ড শক্তি | <meter value="70" min="0" max="100">70%</meter> |
<progress> |
কাজের অগ্রগতি বার | ফাইল আপলোড, কোর্সের অগ্রগতি | <progress value="60" max="100"></progress> |
🔷 Grouping ও Interactive — গ্রুপ ও ইন্টারেক্টিভ
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<details> |
ক্লিক করলে দেখা যায় এমন লুকানো কনটেন্ট | FAQ, Accordion, Spoiler | <details><summary>প্রশ্ন</summary>উত্তর</details> |
<summary> |
details-এর দৃশ্যমান শিরোনাম | details-এর প্রথমেই | <summary>আরও দেখুন</summary> |
<dialog> |
Modal বা Popup ডায়ালগ বক্স | Confirmation, Alert, Custom Modal | <dialog open><p>নিশ্চিত?</p></dialog> |
<template> |
লুকানো HTML যা JS দিয়ে ক্লোন করা যায় | Dynamic কার্ড, পুনর্ব্যবহারযোগ্য UI | <template id="card"><div class="card"></div></template>
|
<slot> |
Web Component-এ কনটেন্টের স্থান নির্ধারক | Custom Element-এর ভেতরের কনটেন্ট | <slot name="header">ডিফল্ট</slot> |
🔷 Code ও Technical — প্রযুক্তিগত কনটেন্ট
| ট্যাগ | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
<code> |
ইনলাইন কোড বা ফাংশনের নাম | লেখার মধ্যে কোড দেখাতে | <code>console.log()</code> |
<pre> |
হুবহু ফরম্যাট ধরে রাখা লেখা | কোড ব্লক (<pre><code> একসাথে) |
<pre><code>let x = 5;</code></pre> |
<kbd> |
কীবোর্ড বোতামের ইনপুট | Keyboard Shortcut দেখাতে | <kbd>Ctrl</kbd> + <kbd>S</kbd> |
<samp> |
প্রোগ্রাম বা কম্পিউটারের আউটপুট | Terminal বা Console আউটপুট | <samp>Hello, World!</samp> |
<var> |
গণিত বা প্রোগ্রামিং-এর চলক (Variable) | সূত্রে ভেরিয়েবল | ক্ষেত্রফল = π × <var>r</var><sup>2</sup> |
<data> |
মেশিন-পঠনযোগ্য মান | পণ্যের কোড, ISBN নম্বর | <data value="P001">পণ্য ১</data> |
🔷 Global Attributes — যেকোনো ট্যাগে ব্যবহারযোগ্য
| Attribute | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
id |
Element-এর অনন্য পরিচয় (পেজে একটিই) | CSS, JS, Anchor Link | <section id="about"> |
class |
Element-এর গ্রুপ পরিচয় (একাধিক হতে পারে) | CSS স্টাইল দিতে | <div class="card active"> |
style |
সরাসরি Inline CSS | দ্রুত স্টাইল পরীক্ষা | <p style="color:red;"> |
title |
Hover করলে Tooltip দেখায় | লিংক, ছবি, abbr-এ বিবরণ | <a title="গুগলে যাবে"> |
lang |
কনটেন্টের ভাষা নির্ধারণ | বহুভাষিক পেজে অংশের ভাষা | <p lang="en">English</p> |
dir |
লেখার দিক নির্ধারণ | আরবি, উর্দু (rtl) কনটেন্টে | <p dir="rtl">عربي</p> |
hidden |
Element পেজে লুকিয়ে রাখে | JS দিয়ে পরে দেখানো হবে | <div hidden>লুকানো</div> |
tabindex |
Tab চাপলে কোন ক্রমে focus যাবে | Keyboard Accessibility | <div tabindex="0"> |
contenteditable |
Element-এর কনটেন্ট পেজে সরাসরি এডিট করা যাবে | Rich Text Editor, নোটপ্যাড | <div contenteditable="true"> |
data-* |
Custom ডেটা Element-এ সংরক্ষণ | JS দিয়ে পরে ব্যবহার করতে | <div data-id="42" data-role="admin"> |
draggable |
Element টেনে নেওয়া যাবে কিনা | Drag and Drop কার্যকারিতায় | <div draggable="true"> |
spellcheck |
বানান পরীক্ষা চালু বা বন্ধ | textarea, contenteditable-এ | <textarea spellcheck="false"> |
translate |
ব্রাউজার অনুবাদ করবে কিনা | ব্র্যান্ড নাম, কোড অনুবাদ রোধে | <span translate="no">DevShikhi</span> |
🔷 ARIA Attributes — Accessibility-র জন্য
| Attribute | সংজ্ঞা | ব্যবহার | সংক্ষিপ্ত উদাহরণ |
|---|---|---|---|
role |
Element-এর ভূমিকা Screen Reader-কে জানায় | div দিয়ে button বানালে | <div role="button"> |
aria-label |
Screen Reader-এর জন্য নাম | Icon বোতামে, দৃশ্যমান label না থাকলে | <button aria-label="বন্ধ করো">✕</button> |
aria-labelledby |
অন্য Element-এর id দিয়ে নাম | Section-এর নাম heading থেকে নিতে | <section aria-labelledby="heading"> |
aria-describedby |
অতিরিক্ত বিবরণের Element-এর id | ইনপুটের hint বা error message | <input aria-describedby="hint"> |
aria-hidden |
Screen Reader থেকে লুকিয়ে রাখা | সাজসজ্জার আইকন, পুনরাবৃত্তি | <span aria-hidden="true">★</span> |
aria-expanded |
Element খোলা (true) বা বন্ধ (false) | Accordion, Dropdown, Menu | <button aria-expanded="false"> |
aria-live |
গতিশীল কনটেন্ট পরিবর্তন হলে পড়া | Error message, Status update | <div aria-live="polite"> |
aria-required |
ফিল্ড পূরণ করা বাধ্যতামূলক | Custom ফর্ম ফিল্ডে | <input aria-required="true"> |
aria-invalid |
ইনপুটের মান ভুল কিনা | Validation ব্যর্থ হলে JS দিয়ে | <input aria-invalid="true"> |
aria-current |
বর্তমান পেজ বা আইটেম চিহ্নিত করা | Breadcrumb, Navigation মেনু | <a aria-current="page">HTML</a> |
aria-pressed |
Toggle বোতাম চাপা আছে কিনা | Dark Mode, Like বোতাম | <button aria-pressed="false"> |
aria-modal |
Dialog একটি Modal হিসেবে চিহ্নিত | Modal dialog-এ | <div role="dialog" aria-modal="true"> |
🔷 Deprecated Tags — এখন আর ব্যবহার করো না
| বাতিল ট্যাগ | আগে কী করতো | এখন কী ব্যবহার করবে |
|---|---|---|
<center> |
কনটেন্ট মাঝখানে আনতো | CSS: text-align: center |
<font> |
ফন্ট, সাইজ, রঙ পরিবর্তন করতো | CSS: font-family, font-size, color |
<big> |
লেখা বড় করতো | CSS: font-size: larger |
<strike> |
Strikethrough করতো | <del> বা <s> |
<tt> |
Monospace ফন্টে দেখাতো | <code> বা <kbd> |
<marquee> |
স্ক্রোলিং টেক্সট তৈরি করতো | CSS Animation |
<blink> |
লেখা জ্বলতো-নিভতো | CSS Animation |
<frame> |
পেজ frame-এ ভাগ করতো | <iframe> বা CSS Grid |
