ওয়েবসাইট কখনো বানাওনি? কোনো সমস্যা নেই। এই গাইড তোমাকে HTML দিয়ে কাঠামো, CSS দিয়ে সাজানো এবং JavaScript দিয়ে প্রাণ দেওয়া — সবটা শেখাবে একদম শুরু থেকে। Never built a website? No problem. This guide teaches you structure with HTML, styling with CSS, and bringing it to life with JavaScript — all from scratch.
HTML (HyperText Markup Language) হলো ওয়েবপেজের কাঠামো। এটা কোনো programming language না — এটা একটা markup language। ঘরের ইটের দেওয়ালের মতো — যা CSS (রং-রূপ) এবং JavaScript (কার্যকারিতা) ধরে রাখে।HTML (HyperText Markup Language) is the structure of a webpage. It's not a programming language — it's a markup language. Like the brick walls of a house — holding up the CSS (looks) and JavaScript (functionality).
কাঠামো — কী আছেStructure — what's there
Heading, Paragraph, Image, Button
ডিজাইন — কেমন দেখায়Design — how it looks
Color, Font, Layout, Animation
কার্যকারিতা — কী করেFunctionality — what it does
Click, Form submit, Data fetch
Opening Tag Content Closing Tag ↓ ↓ ↓ <h1 class="title"> আমার ওয়েবসাইট </h1> ↑ ↑ Attribute Value সব মিলিয়ে এটাই একটা Element
index.htmlOpen VS Code → Create new file → Name it index.html! তারপর Tab চাপো → পুরো HTML skeleton তৈরি হয়ে যাবে!Type ! then press Tab → complete HTML skeleton appears!<tag> content </tag> = Element; attribute="value"h1-h6, p, strong, em — text formatting<a href=""> — link, <img src="" alt=""> — imageul/ol + li — list, table + tr + td — tablediv — block container, span — inline containerSemantic tag ব্যবহার করলে browser, search engine এবং screen reader বুঝতে পারে কোন অংশের কী কাজ। শুধু div দিলে বোঝা যায় না।Using semantic tags helps browsers, search engines and screen readers understand what each part does. Using only div doesn't convey meaning.
required — ফাঁকা রাখা যাবে নাcannot be left emptyCSS-এ প্রতিটা element একটা বাক্সের মতো। এই বাক্সের চারটা অংশ আছে:In CSS, every element is like a box. This box has four parts:
┌─────────────────────────────────────────┐ │ margin │ ← বাইরের ফাঁক │ ┌───────────────────────────────────┐ │ │ │ border │ │ ← বাক্সের সীমানা │ │ ┌─────────────────────────────┐ │ │ │ │ │ padding │ │ │ ← ভেতরের ফাঁক │ │ │ ┌───────────────────────┐ │ │ │ │ │ │ │ content │ │ │ │ ← আসল বিষয়বস্তু │ │ │ │ (text, image, etc) │ │ │ │ │ │ │ └───────────────────────┘ │ │ │ │ │ └─────────────────────────────┘ │ │ │ └───────────────────────────────────┘ │ └─────────────────────────────────────────┘
box-sizing: border-box — সবসময় ব্যবহার করোalways use thisCSS Variables (Custom Properties) দিয়ে একটা জায়গায় রঙ বা মান সংরক্ষণ করো, সব জায়গায় ব্যবহার করো। পরে বদলাতে হলে একটা জায়গায় বদলালেই হয়।CSS Variables let you store colors or values in one place and use them everywhere. To change later, update just one place.
--variable: value define, var(--variable) ব্যবহারuseFlexbox একটা CSS Layout system। Parent-এ display: flex দিলে তার সব সরাসরি children flex items হয়ে যায় এবং সহজে সাজানো যায়।Flexbox is a CSS Layout system. Adding display: flex to a parent makes all its direct children flex items that are easy to arrange.
display: flex — parent-এ দিলে flex শুরুadd to parent to start flexjustify-content — main axis-এ সাজানোarrange on main axisalign-items — cross axis-এ সাজানোarrange on cross axisgap — items-এর মধ্যে ফাঁকgap between itemsFlexbox এক দিকে (row বা column) কাজ করে। Grid দুই দিকে (row এবং column) কাজ করে — magazine layout-এর জন্য পারফেক্ট।Flexbox works in one direction (row or column). Grid works in two directions (row AND column) — perfect for magazine-style layouts.
Media Query ব্যবহার করে screen-এর size অনুযায়ী আলাদা CSS লেখা যায়।Media Queries let you write different CSS based on screen size.
display: grid + grid-template-columns — 2D layoutrepeat(auto-fit, minmax(280px, 1fr)) — auto-responsive grid@media (min-width: 768px) — responsive CSSlet — পরিবর্তনযোগ্য, const — স্থিরfixedif/else if/else — শর্ত, Ternary: ? :for, for...of, while — loop`Hello ${name}` — Template Literal, সবসময় এটা ব্যবহার করোalways use thisconst fn = (x) => x * 2push/pop/splice — array modify করাmodify arraymap() — transform, filter() — বাছাই, reduce() — একটায় পরিণতfind() — খোঁজা, includes() — আছে কিনাDOM (Document Object Model) হলো HTML document-এর JavaScript representation। JavaScript দিয়ে DOM-এর যেকোনো element খুঁজে পাওয়া, বদলানো, যোগ বা বাদ দেওয়া যায়।The DOM is JavaScript's representation of the HTML document. You can find, change, add or remove any element using JavaScript.
querySelector('.class') — element খোঁজোfind element.textContent, .innerHTML, .style.color — বদলাওchange.classList.add/remove/toggle — CSS classaddEventListener('click', fn) — event শোনোlisten to eventscreateElement + appendChild — নতুন element তৈরিcreate new elementsconst { naam, boyos } = studentJSON.parse() → Object, JSON.stringify() → Stringasync/await + fetch() — API থেকে ডেটা আনাfetch data from APItransition: all 0.3s ease — hover-এ মসৃণ পরিবর্তনsmooth change on hovertransform: scale/translate/rotate — রূপান্তরtransform@keyframes + animation — পূর্ণ animationfull animationanimation-delay — staggered effect তৈরিcreate staggered effect...: array/object copy ও mergelocalStorage — browser-এ স্থায়ীভাবে সংরক্ষণpermanently store in browsertry/catch/finally — error সামলানোhandling errorsনিজের পরিচয় সাইট। HTML + CSS শেখার পরেই বানাও।Your personal introduction site. Build right after learning HTML + CSS.
HTML CSS Flexbox
নাম, কাজ, ছবি, Contact formName, work, photo, contact form
কাজের তালিকা। JS শেখার পরেই বানাও।Task list app. Build right after learning JS.
JS DOM localStorage Events
Add, delete, complete, save করাAdd, delete, complete, save tasks
Real-time আবহাওয়া। Fetch API শেখার পরে।Real-time weather. After learning Fetch API.
Fetch API JSON OpenWeather API
শহরের নাম দাও, আবহাওয়া দেখাওEnter city name, show weather
MCQ Quiz। Arrays ও DOM-এর ভালো practice।MCQ Quiz. Great practice for Arrays & DOM.
Arrays DOM Timer
প্রশ্ন, option, score, timerQuestions, options, score, timer
পণ্যের পেজ, cart, filter। সব কিছু একসাথে।Product page, cart, filter. Everything combined.
HTML CSS Grid JS Fetch API localStorage
| Platform | কী সুবিধাBenefit | দামPrice |
|---|---|---|
| GitHub Pages | Static site — সবচেয়ে সহজStatic site — easiest | Free |
| Netlify | Drag & drop deploy, custom domain | Free |
| Vercel | React/Next.js-এর জন্য সেরাBest for React/Next.js | Free |
| Cloudflare Pages | দ্রুত, unlimited bandwidthFast, unlimited bandwidth | Free |