এইচটিএমএল (HTML) এর মৌলিক ধারণা ও পেজ লেআউট
এইচটিএমএল (HTML) এর পরিচিতি, ট্যাগ, এলিমেন্ট, অ্যাট্রিবিউট এবং ওয়েব পেজের মৌলিক কাঠামো নিয়ে বিস্তারিত লেকচার। এইচএসসি আইসিটি অধ্যায় ৪।
এইচটিএমএল (HTML) এর মৌলিক ধারণা ও পেজ লেআউট
- এইচটিএমএল (HTML) এর মৌলিক ধারণা ও পেজ লেআউট
- ওয়েবসাইটের কঙ্কাল (Skeleton)
- HTML কী?
- HTML এর বিবর্তন
- HTML এর সুবিধা ও অসুবিধা
- ট্যাগ (Tag) পরিচিতি
- এলিমেন্ট ও অ্যাট্রিবিউট
- ওয়েব পেজের মৌলিক কাঠামো (Skeleton)
- DOM বা ট্রি স্ট্রাকচার
- পেজ লেআউট ও সেমান্টিক ট্যাগ
- হাতে কলমে কোডিং: প্রথম ওয়েব পেজ
- নিজেকে যাচাই করি (Self Check)
- সারসংক্ষেপ
লেকচার ৩: এইচটিএমএল (HTML) এর মৌলিক ধারণা ও পেজ লেআউট
লেকচারে আমরা মানুষের কঙ্কালের সাথে ওয়েবসাইটের কাঠামোর তুলনা দেখেছি। এই রিডিং ম্যাটেরিয়ালে আমরা সেই 'কঙ্কাল' বা HTML-এর প্রতিটি হাড়—অর্থাৎ ট্যাগ, সিনট্যাক্স এবং গঠনপ্রণালীকে গভীরভাবে বিশ্লেষণ করব। আমরা জানব কেন একটি সাধারণ নোটপ্যাডে লেখা টেক্সট ব্রাউজারে সুন্দর ওয়েবসাইট হিসেবে প্রদর্শিত হয় এবং এর পেছনের মূল কারিগর 'মার্কআপ' ল্যাঙ্গুয়েজ কীভাবে কাজ করে। এইচএসসি পরীক্ষার জন্য HTML-এর প্রতিটি খুঁটিনাটি বিষয়, বিশেষ করে ট্যাগ এবং সিনট্যাক্স বোঝা অত্যন্ত জরুরি।
এইচটিএমএল (HTML): সংজ্ঞা ও ইতিহাস
এইচটিএমএল (HTML) বা HyperText Markup Language হলো ওয়েব পেজ তৈরি করার জন্য ব্যবহৃত একটি স্ট্যান্ডার্ড মার্কআপ ল্যাঙ্গুয়েজ। এটি কোনো প্রোগ্রামিং ভাষা নয়, কারণ এতে গাণিতিক অপারেশন বা লজিক্যাল সিদ্ধান্ত নেওয়ার ক্ষমতা নেই। এটি মূলত ব্রাউজারকে নির্দেশ দেয় কীভাবে টেক্সট, ইমেজ বা অন্যান্য কন্টেন্ট স্ক্রিনে সাজাতে হবে।
শব্দ দুটিকে ভাঙলে আমরা পাই:
- HyperText (হাইপারটেক্সট): এর মাধ্যমে একটি ওয়েব পেজের তথ্যের সাথে অন্য পেজের তথ্যের লিংক বা সংযোগ স্থাপন করা হয়। আমরা যখন কোনো লিংকে ক্লিক করে এক পেজ থেকে অন্য পেজে যাই, সেটিই হাইপারটেক্সট।
- Markup (মার্কআপ): এটি হলো কিছু নির্দিষ্ট চিহ্ন বা ট্যাগ ব্যবহারের পদ্ধতি, যা সাধারণ টেক্সটকে ফরম্যাট করে ব্রাউজারে প্রদর্শনযোগ্য করে তোলে।
সংজ্ঞা (Definition): HTML (HyperText Markup Language) হলো ওয়েব পেজ তৈরি ও প্রদর্শনের জন্য ব্যবহৃত একটি প্রমিত মার্কআপ ল্যাঙ্গুয়েজ, যা কতগুলো ট্যাগের সমন্বয়ে গঠিত এবং ব্রাউজারকে নির্দেশ দেয় কীভাবে কন্টেন্ট বা তথ্য প্রদর্শিত হবে।
ইতিহাস ও ক্রমবিকাশ
১৯৯০ সালে জেনেভার CERN-এ থাকাকালীন ব্রিটিশ বিজ্ঞানী টিম বার্নার্স লি (Tim Berners-Lee) এইচটিএমএল উদ্ভাবন করেন। তিনি সর্বপ্রথম ওয়েব ব্রাউজার এবং ওয়েব সার্ভারও তৈরি করেন। বর্তমানে এইচটিএমএল-এর মান নিয়ন্ত্রণ এবং উন্নয়ন করে W3C (World Wide Web Consortium) নামক একটি আন্তর্জাতিক সংস্থা।
গুরুত্বপূর্ণ তথ্য (MCQ এর জন্য):
- জনক: টিম বার্নার্স লি (১৯৯০ সাল)।
- বর্তমান সংস্করণ: HTML5।
- নিয়ন্ত্রণকারী সংস্থা: W3C (World Wide Web Consortium)।
- ফাইল এক্সটেনশন: .html বা .htm (সেভ করার সময় এটি ব্যবহার করতে হয়)।
ট্যাগ (Tag) ও এলিমেন্ট (Element)
শিক্ষার্থীরা প্রায়ই ট্যাগ এবং এলিমেন্টের মধ্যে গুলিয়ে ফেলে। কিন্তু এদের মধ্যে স্পষ্ট পার্থক্য রয়েছে। এইচটিএমএল ডকুমেন্টে কৌণিক ব্র্যাকেটের (< >) মধ্যে আবদ্ধ কিওয়ার্ডকে ট্যাগ বলা হয়। অন্যদিকে, ওপেনিং ট্যাগ থেকে শুরু করে ক্লোজিং ট্যাগ পর্যন্ত মাঝখানের কন্টেন্টসহ পুরো অংশকে এলিমেন্ট বলা হয়।
এইচটিএমএল ট্যাগগুলো Case Insensitive, অর্থাৎ <html> এবং <HTML> একই কাজ করে। তবে W3C-এর স্ট্যান্ডার্ড অনুযায়ী সবসময় ছোট হাতের অক্ষর (Lowercase) ব্যবহার করা উত্তম।
সংজ্ঞা (Definition):
- ট্যাগ (Tag): এইচটিএমএল-এর নির্দিষ্ট নির্দেশক শব্দ যা < > চিহ্নের মধ্যে থাকে। যেমন: <body>।
- এলিমেন্ট (Element): শুরুর ট্যাগ, মাঝখানের বিষয়বস্তু এবং শেষের ট্যাগ—এই সবকিছু মিলিয়ে গঠিত অংশকে এলিমেন্ট বলে।
উদাহরণ (Example):
ধরি একটি কোড: <h1> This is a Heading </h1>
এখানে:
- <h1> = ওপেনিং ট্যাগ (Opening Tag)
- </h1> = ক্লোজিং ট্যাগ (Closing Tag)
- This is a Heading = কন্টেন্ট (Content)
- পুরো লাইনটি = একটি HTML এলিমেন্ট (Element)
নেস্টিং (Nesting) বা একটার ভেতর আরেকটা এলিমেন্ট রাখার ক্ষেত্রে LIFO (Last In First Out) নিয়ম মেনে চলতে হয়। অর্থাৎ, যে ট্যাগটি সবার শেষে শুরু হয়েছে, সেটি সবার আগে শেষ হবে। যেমন: <b><i>Text</i></b> সঠিক, কিন্তু <b><i>Text</b></i> ভুল।
ট্যাগের প্রকারভেদ: কন্টেইনার ও এম্পটি ট্যাগ
গঠন অনুসারে এইচটিএমএল ট্যাগ দুই প্রকার:
১. কন্টেইনার ট্যাগ (Container Tag)
যেসব ট্যাগের শুরু (Opening) এবং শেষ (Closing) উভয়ই আছে এবং যার মধ্যে কন্টেন্ট বা অন্য ট্যাগ থাকতে পারে, তাকে কন্টেইনার ট্যাগ বলে। অধিকাংশ ট্যাগই এই শ্রেণীর অন্তর্ভুক্ত।
উদাহরণ: <html>...</html>, <p>...</p>, <b>...</b>।
২. এম্পটি ট্যাগ (Empty Tag)
যেসব ট্যাগের শুধুমাত্র শুরু আছে কিন্তু কোনো শেষ বা ক্লোজিং ট্যাগ নেই এবং যার মধ্যে কোনো কন্টেন্ট থাকে না, তাকে এম্পটি ট্যাগ বলে। এদের কাজ হলো কোনো নির্দিষ্ট উপাদান (যেমন লাইন ব্রেক বা ছবি) স্থাপন করা।
সাধারণ এম্পটি (Empty) ট্যাগের তালিকা (MCQ টিপস):
নিচের তালিকাটি মুখস্থ রাখা জরুরি, কারণ উদ্দীপকে প্রায়ই প্রশ্ন আসে "নিচের কোনটি এম্পটি ট্যাগ?":
1. <br> (Line Break) - নতুন লাইনে যাওয়ার জন্য।
2. <hr> (Horizontal Rule) - আড়াআড়ি দাগ টানার জন্য।
3. <img> (Image) - ছবি যুক্ত করার জন্য।
4. <input> (Input Field) - ফর্ম তৈরির সময় তথ্য নেওয়ার জন্য।
5. <meta> (Metadata) - পেজের তথ্য ব্রাউজারকে জানানোর জন্য।
6. <link> (Link) - বাহ্যিক ফাইল (যেমন CSS) যুক্ত করার জন্য।
পরীক্ষার টিপস (Exam Tip): উদ্দীপকে অনেক সময় কোড দিয়ে জিজ্ঞেস করে 'এখানে কয়টি এম্পটি ট্যাগ ব্যবহৃত হয়েছে?' তাই উপরের তালিকাটি মনে রাখা জরুরি। এম্পটি ট্যাগে ভুল করে ক্লোজিং ট্যাগ (যেমন </br>) দিলে নম্বর কাটা যাবে।
অ্যাট্রিবিউট (Attribute): সিনট্যাক্স ও নিয়ম
অ্যাট্রিবিউট হলো ট্যাগের অতিরিক্ত বৈশিষ্ট্য নির্দেশক। এটি সবসময় ওপেনিং ট্যাগের (Opening Tag) ভেতরে লেখা হয়। অ্যাট্রিবিউট ব্রাউজারকে এলিমেন্ট সম্পর্কে বাড়তি তথ্য দেয়, যেমন—ছবির সোর্স কোথায়, লিংকের ঠিকানা কী, বা টেক্সটের রঙ কী হবে।
অ্যাট্রিবিউট লেখার নির্দিষ্ট নিয়ম রয়েছে:
1. এটি সবসময় name="value" জোড়ায় থাকে।
2. অ্যাট্রিবিউটের নাম এবং ভ্যালুর মাঝখানে সমান চিহ্ন (=) থাকে।
3. ভ্যালুটিকে অবশ্যই ডাবল কোটেশন (" ") এর মধ্যে রাখা উচিত।
অ্যাট্রিবিউট লেখার গঠন (Syntax):
$$<tagname \ attribute\_name="attribute\_value"> Content </tagname>$$
উদাহরণ ব্যাখ্যা:
<p align="center"> Hello World </p>
এখানে:
- p = ট্যাগ নেম
- align = অ্যাট্রিবিউট নেম
- center = অ্যাট্রিবিউট ভ্যালু
- এর ফলে "Hello World" লেখাটি পেজের মাঝখানে প্রদর্শিত হবে।
কমন কিছু অ্যাট্রিবিউট যা সব ট্যাগে ব্যবহার করা যায় (Global Attributes): id, class, style, title।
এইচটিএমএল পেজের মৌলিক কাঠামো (Basic Structure)
প্রতিটি এইচটিএমএল পেজের একটি নির্দিষ্ট কাঠামো বা "বয়লারপ্লেট" (Boilerplate) থাকে। পরীক্ষার খাতায় যেকোনো এইচটিএমএল কোড লেখার সময় এই কাঠামো মেনে চলা বাধ্যতামূলক। নিচে একটি আদর্শ HTML5 পেজের কাঠামো ব্যাখ্যাসহ দেওয়া হলো:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My First Page</title>
</head>
<body>
<h1>স্বাগতম আমাদের ওয়েবসাইটে</h1>
<p>এটি একটি প্যারাগ্রাফ।</p>
</body>
</html>
কোড ব্যাখ্যা (গুরুত্বপূর্ণ):
- <!DOCTYPE html>: এটি কোনো ট্যাগ নয়, এটি ব্রাউজারকে জানিয়ে দেয় যে ডকুমেন্টটি HTML5 সংস্করণে লেখা।
- <html>: এটি পেজের রুট (Root) এলিমেন্ট। পুরো পেজের সবকিছু এর ভেতরে থাকে।
- <head>: এখানে পেজের মেটা তথ্য (Meta Information) থাকে যা সরাসরি ব্রাউজারের মূল স্ক্রিনে দেখা যায় না। যেমন পেজের টাইটেল, স্টাইলশিট লিংক ইত্যাদি।
- <title>: এটি ব্রাউজারের টাইটেল বার বা ট্যাবে পেজের নাম প্রদর্শন করে। এটি <head> এর ভেতরে থাকে।
- <body>: এটিই পেজের প্রধান অংশ। আমরা ওয়েবসাইটে যা কিছু দেখি (টেক্সট, ছবি, ভিডিও) সব এই <body> ট্যাগের ভেতরে লিখতে হয়।
লেআউট ও সেমান্টিক ট্যাগ (HTML5 Layout)
HTML5-এ ওয়েব পেজের বিভিন্ন অংশকে অর্থপূর্ণভাবে সংজ্ঞায়িত করার জন্য কিছু বিশেষ ট্যাগ যুক্ত করা হয়েছে, যাদেরকে সেমান্টিক ট্যাগ (Semantic Tags) বলা হয়। আগে লেআউট তৈরির জন্য শুধুমাত্র <div> ট্যাগ ব্যবহার করা হতো, কিন্তু <div> দেখে বোঝা যেত না যে সেটি পেজের কোন অংশ (হেডার নাকি ফুটার)।
সেমান্টিক ট্যাগগুলো তাদের নাম দেখেই বোঝা যায় তারা কী কাজ করছে। যেমন: <header>, <footer>, <article>।
সংজ্ঞা (Definition): সেমান্টিক ট্যাগ (Semantic Tag) হলো এমন সব ট্যাগ যা ব্রাউজার এবং ডেভেলপার উভয়ের কাছেই তাদের বিষয়বস্তুর অর্থ স্পষ্টভাবে প্রকাশ করে। উদাহরণ: <table>, <form>, <header>। নন-সেমান্টিক ট্যাগ হলো <div>, <span> যা বিষয়বস্তু সম্পর্কে কিছু বলে না।

একটি আদর্শ ওয়েব পেজ লেআউটের প্রধান অংশগুলো হলো:
1. <header>: পেজের ওপরের অংশ, যেখানে লোগো বা শিরোনাম থাকে।
2. <nav>: নেভিগেশন বার, যেখানে মেনু লিংকগুলো থাকে।
3. <section>: পেজের মূল বিষয়বস্তুর একেকটি বিভাগ।
4. <article>: স্বতন্ত্র কোনো লেখা বা ব্লগ পোস্ট।
5. <aside>: মূল কন্টেন্টের পাশে থাকা সাইডবার।
6. <footer>: পেজের একেবারে নিচের অংশ, যেখানে কপিরাইট বা কন্টাক্ট ইনফো থাকে।
পরীক্ষার টিপস (Exam Tip): সৃজনশীল প্রশ্নে তোমাকে একটি লেআউট চিত্র দিয়ে বলতে পারে—"উদ্দীপকের চিত্রটি তৈরির জন্য প্রয়োজনীয় HTML কোড লিখো।" তখন <div> ব্যবহার না করে সেমান্টিক ট্যাগ ব্যবহার করা আধুনিক এবং সঠিক পদ্ধতি। এতে কোড রিডেবিলিটি বাড়ে।
সারাংশ ও পরীক্ষার প্রস্তুতি
এই অধ্যায় থেকে ভালো করার জন্য নিচের বিষয়গুলো ঝালাই করে নাও:
সংক্ষিপ্ত সারাংশ (Quick Revision):
- HTML হলো মার্কআপ ল্যাঙ্গুয়েজ, কঙ্কালস্বরূপ; এটি প্রোগ্রামিং ভাষা নয়।
- ট্যাগ < > এর মধ্যে থাকে, আর এলিমেন্ট হলো শুরু থেকে শেষ পর্যন্ত পুরো অংশ।
- <br>, <hr>, <img>, <input> হলো এম্পটি ট্যাগ (ক্লোজিং নেই)।
- অ্যাট্রিবিউট ট্যাগের ক্ষমতা বাড়ায় এবং সবসময় ওপেনিং ট্যাগে থাকে।
- <!DOCTYPE html> দিয়ে HTML5 বোঝায়, যা সবার শুরুতে লিখতে হয়।
- সেমান্টিক ট্যাগ (যেমন <header>, <footer>) ব্যবহার করা SEO এবং কোড বোঝার জন্য ভালো।
পরিভাষা (Glossary)
| পরিভাষা (Term) | সংজ্ঞা (Definition) |
|---|---|
| Tag (ট্যাগ) | HTML-এর নির্দেশক কিওয়ার্ড যা < > এর মধ্যে থাকে। |
| Attribute (অ্যাট্রিবিউট) | ট্যাগের অতিরিক্ত বৈশিষ্ট্য নির্দেশক, যা ওপেনিং ট্যাগে বসে। |
| Element (এলিমেন্ট) | ওপেনিং ট্যাগ, কন্টেন্ট এবং ক্লোজিং ট্যাগের সমষ্টি। |
| Semantic Tag | অর্থবোধক ট্যাগ যা ব্রাউজার ও ডেভেলপার উভয়ের কাছে স্পষ্ট (যেমন <table>)। |
| Boilerplate | HTML কোডের প্রারম্ভিক স্ট্যান্ডার্ড কাঠামো। |
| W3C | World Wide Web Consortium - ওয়েবের মান নিয়ন্ত্রণকারী সংস্থা। |