इस chapter में आप HTML की मूल बातें step-by-step सीखेंगे — Introduction, Basic Structure, Head section, Formatting tags, Anchors, Images, Tables, Lists, Forms, Frames और HTML5 features (semantic tags, audio/video, validations, iframe) तक — सब कुछ examples के साथ।
HTML (HyperText Markup Language) वह भाषा है जिससे वेब पेज का ढांचा बनाया जाता है। यह content को structure देती है ताकि browser उसे सही तरह दिखा सके। जैसे हम किताब के पन्नों में headings, paragraphs और images लगाते हैं, वैसे ही HTML tags से एक web page तैयार होता है।
“Markup” का मतलब है – किसी text को टैग्स से घेरकर उसका अर्थ बताना। उदाहरण के लिए:
<p>यह एक पैराग्राफ है</p>
यहाँ <p> टैग बताता है कि अंदर का text एक paragraph है।
हर HTML फाइल की शुरुआत DOCTYPE से होती है, उसके बाद <html>, <head> और <body> आते हैं। नीचे एक उदाहरण दिया गया है —
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First Page</title>
</head>
<body>
<h1>Hello, HTML!</h1>
<p>यह मेरा पहला वेब पेज है।</p>
<a href="https://boostingskills.com/compile-code" target="_blank">
🧪 Try this on Boosting Skills Compiler
</a>
</body>
</html>
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Hello</title>
<h1>Hello World!</h1>
<p>Minimal HTML works too!</p>
ब्राउज़र अपने-आप <html>, <head>, <body> मान लेता है, इसलिए यह भी चलेगा — पर सीखने के लिए पूरा template लिखना बेहतर है।
<!DOCTYPE html> लिखें।<meta charset="UTF-8"> और viewport meta ज़रूर रखें।<head> वह भाग है जहाँ पेज के बारे में metadata होता है — जो ज़्यादातर स्क्रीन पर दिखता नहीं, पर browser, search engines, social media, performance और accessibility के लिए बहुत ज़रूरी है। जैसे: title, meta tags, CSS/JS links, favicons इत्यादि।
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Title</title>
<meta name="description" content="Short SEO description (140–160 chars)">
<link rel="icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles.css">
<script src="/script.js" defer></script>
</head>
<meta charset="UTF-8"><meta name="viewport">width=device-width, initial-scale=1.0 सबसे standard value है।<title> (Tab Title)<meta name="description" content="Concise, compelling summary (140–160 chars)">
<meta name="keywords" content="(optional) html, head, tutorial"> <!-- Modern SEO में वैकल्पिक -->
<link rel="canonical" href="https://example.com/page"> <!-- Duplicate URLs avoid -->
<meta name="robots" content="index, follow"> <!-- Crawl/Index control -->
<link rel="icon" href="/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch.png">
<meta name="theme-color" content="#0b3ea9">
<link rel="stylesheet" href="/styles.css"> <!-- Render-blocking -->
<link rel="preload" href="/styles.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/styles.css"></noscript>
defer vs async<script src="/app.js" defer></script> <!-- HTML parse खत्म होने के बाद, order बना रहता है -->
<script src="/ads.js" async></script> <!-- As soon as loaded, order की गारंटी नहीं -->
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="dns-prefetch" href="//cdn.example.com">
<link rel="preload" href="/fonts/Inter.woff2" as="font" type="font/woff2" crossorigin>
<meta property="og:title" content="HTML Head – Guide">
<meta property="og:description" content="Everything inside <head> explained.">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<script type="application/ld+json">{
"@context":"https://schema.org",
"@type":"Article",
"headline":"HTML Head – Complete Guide",
"author":{"@type":"Person","name":"Your Name"},
"datePublished":"2025-01-01"
}</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css">
<base href="https://example.com/"> <!-- सभी relative URLs का base -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- पुरानी IE compatibility -->
<noscript>JavaScript is required for best experience.</noscript>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Head Section – Best Practices | Demo</title>
<meta name="description" content="Learn all important <head> tags: SEO, performance, icons, social, and scripts.">
<link rel="canonical" href="https://example.com/head-demo">
<meta name="robots" content="index, follow">
<link rel="icon" href="/favicon.ico">
<meta name="theme-color" content="#0b3ea9">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/styles.css">
<meta property="og:title" content="Head Section – Best Practices">
<meta property="og:description" content="All important <head> tags explained.">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<script type="application/ld+json">{
"@context":"https://schema.org",
"@type":"Article",
"headline":"Head Section – Best Practices",
"author":{"@type":"Person","name":"Your Name"}
}</script>
<script src="/analytics.js" async></script> <!-- independent -->
<script src="/app.js" defer></script> <!-- main app -->
</head>
<body>
<h1>Head Section – Demo</h1>
<p>Open DevTools → Elements → <head> to inspect tags.</p>
<p>
<a href="https://boostingskills.com/compile-code" target="_blank" rel="noopener">
Run this demo on Boosting Skills Compiler
</a>
</p>
</body>
</html>
Formatting Tags का उपयोग किसी टेक्स्ट को सुंदर और अर्थपूर्ण बनाने के लिए किया जाता है। ये बताती हैं कि कौन-सा शब्द महत्वपूर्ण (important) है, कौन-सा emphasized (ज़ोर दिया गया) है, कौन-सा highlighted या deleted है। HTML में formatting tags केवल “style” नहीं बल्कि “meaning” भी बताते हैं।
<b>, <i>) और semantic tags
(जैसे <strong>, <em>) में फर्क समझना ज़रूरी है।
<p>Normal Text</p>
<p><b>Bold Text</b> — सिर्फ मोटा दिखता है (visual)</p>
<p><strong>Strong Text</strong> — महत्वपूर्ण शब्द (semantic)</p>
<p><i>Italic Text</i> — तिरछा दिखता है</p>
<p><em>Emphasized Text</em> — किसी शब्द पर ज़ोर देने के लिए</p>
<p><u>Underlined Text</u></p>
<p><s>Strikethrough</s> या <del>Deleted Text</del></p>
<p><mark>Highlighted Text</mark></p>
<p>Water formula: H<sub>2</sub>O</p>
<p>10<sup>2</sup> = 100</p>
<p><small>Small note text</small></p>
<p><code>Inline code text</code> — code दिखाने के लिए</p>
<p><blockquote>This is a long quoted text.</blockquote></p>
<div> का उपयोग HTML में content के sections को group करने के लिए किया जाता है। यह एक block-level element है — यानी नई लाइन से शुरू होता है और पूरी चौड़ाई लेता है।
<div style="border:1px solid #ccc; padding:10px;">
<h2>About Me</h2>
<p>My name is Rahul. I love web designing.</p>
</div>
class या id attributes का उपयोग किया जाता है।
<div id="intro" class="box">
Welcome to my website!
</div>
<style>
.box { background:#eaf2ff; padding:10px; border-radius:8px; }
</style>
<pre> tag text को उसी spacing और line-breaks में दिखाता है जैसे लिखा गया है। यह fixed-width font में दिखता है (जैसे monospace)।
<pre>
Name Subject Marks
Rahul HTML 90
Sneha CSS 88
Ravi JS 92
</pre>
ऊपर का text ब्राउज़र में वैसे ही spacing के साथ दिखाई देगा जैसे लिखा गया है।
<pre><code>
function greet() {
console.log("Hello World!");
}
</code></pre>
यह तरीका documentation या tutorials में code दिखाने के लिए सबसे अच्छा है।
<a> (anchor) से हम किसी URL पर नेविगेट करते हैं—यह URL पेज के बाहर भी हो सकता है (external link) और उसी पेज के अंदर किसी section तक jump भी कर सकता है (named anchor / fragment).
<a href="https://example.com" target="_blank" rel="noopener">
Visit Example.com
</a>
href = जहां जाना है।target="_blank" = नई tab में खोलो।rel="noopener" = सुरक्षा/प्रदर्शन के लिए (नयी tab को parent तक पहुँच न मिले)।<!-- Absolute (scheme + domain + path) -->
<a href="https://boostingskills.com/olevel">O-Level Home</a>
<!-- Relative (current page या site के संदर्भ में) -->
<a href="/olevel/chapter/m2-r5/html-basics">HTML Basics</a>
<a href="../index.html">Back to Index</a>
<a href="mailto:support@example.com">Email us</a>
<a href="tel:+911234567890">Call: +91 12345 67890</a>
<a href="/notes/html-cheatsheet.pdf" download>Download HTML Cheatsheet (PDF)</a>
“Named anchor” का modern तरीका है: जिस सेक्शन पर जाना है, उसे id दीजिए, और link में #id लिखिए। क्लिक करने पर पेज उसी सेक्शन तक स्क्रॉल कर जाता है।
<!-- Navigation (top) -->
<nav>
<a href="#intro">Intro</a> |
<a href="#features">Features</a> |
<a href="#contact">Contact</a>
</nav>
<!-- Sections (below) -->
<h2 id="intro">Introduction</h2>
<p>This is the intro section.</p>
<h2 id="features">Features</h2>
<p>Key features listed here.</p>
<h2 id="contact">Contact</h2>
<p>Email: hello@example.com</p>
<a href="#top">⬆ Back to top</a>
और पेज के बिलकुल ऊपर किसी तत्व को id="top" दे दें।
<!-- Go to "faq" section on help.html -->
<a href="/help.html#faq">Read FAQs</a>
पुराने HTML में anchors के लिए name attribute इस्तेमाल होता था।
HTML5 में id approach preferred है; फिर भी exam purpose के लिए syntax:
<a name="top"></a> <!-- Legacy named anchor -->
<a href="#top">Back to Top</a>
name केवल legacy/compatibility के लिए है।
<a href="#main" class="skip-link">Skip to main content</a>
<main id="main">...</main>
<style>
.skip-link { position:absolute; left:-9999px; }
.skip-link:focus { left:8px; top:8px; background:#fffa; padding:8px; }
</style>
ब्राउज़र URL में #fragment देखकर उसी id="fragment" पर scroll करता है।
यह client-side होता है—server पर नई request नहीं जाती।
<a href="https://boostingskills.com/compile-code" class="btn" target="_blank" rel="noopener">
Try on Compiler
</a>
<style>
.btn{display:inline-block;padding:8px 12px;border:1px solid #c7d2fe;
border-radius:8px;text-decoration:none}
.btn:hover{background:#eef2ff}
</style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Anchors Demo</title>
<style>
nav a{margin-right:8px}
section{padding:24px 0;border-bottom:1px solid #eee}
</style>
</head>
<body>
<!-- Top anchor for "Back to top" -->
<div id="top"></div>
<h1>Anchor Links & Named Anchors</h1>
<nav>
<a href="#intro">Intro</a>
<a href="#parts">Parts of a URL</a>
<a href="#contact">Contact</a>
<a href="https://boostingskills.com/compile-code" target="_blank" rel="noopener">Open Compiler</a>
</nav>
<section id="intro">
<h2>Intro</h2>
<p>This section explains what anchors are.</p>
<p><a href="#top">⬆ Back to top</a></p>
</section>
<section id="parts">
<h2>Parts of a URL</h2>
<pre><code>https://example.com/page.html#faq
scheme | host | path | fragment (same-page jump)
</code></pre>
<p><a href="#top">⬆ Back to top</a></p>
</section>
<section id="contact">
<h2>Contact</h2>
<p><a href="mailto:hello@example.com">Email us</a> |
<a href="tel:+911234567890">Call us</a></p>
<p><a href="#top">⬆ Back to top</a></p>
</section>
</body>
</html>
id, link में #id.target="_blank" के साथ rel="noopener".download attribute से फ़ाइल सीधे डाउनलोड करा सकते हैं।/page.html#section.<img> tag का उपयोग किसी webpage पर image (चित्र) दिखाने के लिए किया जाता है। यह self-closing tag है — यानी इसका closing tag नहीं होता। हर image को दिखाने के लिए कम से कम एक src (source) और एक alt (alternative text) देना अनिवार्य है।
<img src="path/image.jpg" alt="description">
<img src="flower.jpg" alt="Beautiful Flower">
🔹 src: image file का location या URL बताता है।
🔹 alt: alternate text होता है जो image ना लोड होने पर दिखता है
और visually impaired users के लिए screen readers इसे पढ़ते हैं।
<!-- Absolute URL (Full address) -->
<img src="https://example.com/images/logo.png" alt="Logo">
<!-- Relative URL (Same folder or nearby path) -->
<img src="images/photo.jpg" alt="My Photo">
<img src="../assets/banner.png" alt="Banner">
<img src="flower.jpg" alt="Beautiful Flower" width="300" height="200">
<img src="nature.jpg" alt="Nature Scene" title="Green Forest" loading="lazy">
HTML5 में image के साथ caption दिखाने के लिए <figure> और <figcaption> का उपयोग किया जाता है:
<figure>
<img src="sunset.jpg" alt="Sunset over the sea" width="400">
<figcaption>A beautiful sunset view over the sea.</figcaption>
</figure>
<a href="https://boostingskills.com" target="_blank">
<img src="logo.png" alt="Boosting Skills Logo" width="150">
</a>
अब यह image एक clickable link बन जाएगी — click करने पर Boosting Skills की साइट खुलेगी।
वेबसाइट को responsive बनाने के लिए image की चौड़ाई 100% रखी जाती है ताकि वो device width के अनुसार resize हो सके।
<img src="banner.jpg" alt="Responsive Banner" style="width:100%; height:auto;">
HTML5 में <picture> tag से आप अलग-अलग screen sizes के लिए अलग images दिखा सकते हैं:
<picture>
<source srcset="banner-large.jpg" media="(min-width: 800px)">
<source srcset="banner-small.jpg" media="(max-width: 799px)">
<img src="banner-default.jpg" alt="Responsive Banner">
</picture>
src गलत folder में point कर रहा है।src, alt, width, height, title, loading.width:100%; height:auto; रखें।HTML में किसी text को अलग-अलग भागों (paragraphs) में बांटने के लिए <p> tag का प्रयोग किया जाता है। हर paragraph अपने आप नई line में शुरू होता है और उसके ऊपर–नीचे थोड़ा space होता है।
<p>This is my first paragraph.</p>
<p>This is my second paragraph.</p>
Browser इन दोनों paragraphs को अलग-अलग दिखाएगा क्योंकि
हर <p> अपने आप vertical spacing देता है।
Paragraph के अंदर आप text formatting tags जैसे
<b>, <i>, <u>,
<mark> आदि भी इस्तेमाल कर सकते हैं।
<p>
Welcome to <b>Boosting Skills</b> website.
Here you can learn <mark>HTML easily</mark>.
</p>
<p style="text-align:left;">Left aligned paragraph</p>
<p style="text-align:center;">Center aligned paragraph</p>
<p style="text-align:right;">Right aligned paragraph</p>
<p style="text-align:justify;">Justified paragraph with equal width lines.</p>
<p style="color:blue; font-size:18px; line-height:1.5;">
HTML is the backbone of every webpage.
</p>
ऊपर के उदाहरण में हमने text का color, font-size और line-height (लाइन के बीच की दूरी) सेट की है।
<h1>About HTML</h1>
<p>
HTML stands for HyperText Markup Language.
It is used to create the structure of web pages.
</p>
<p>
You can learn HTML easily by practicing examples on
<a href="https://boostingskills.com/compile-code" target="_blank">
Boosting Skills Compiler
</a>.
</p>
Comments ऐसे notes होते हैं जो केवल developer के लिए लिखे जाते हैं — ये browser में दिखाई नहीं देते। इनका उपयोग कोड को समझाने, याद रखने या temporarily disable करने के लिए किया जाता है।
<!-- यह एक single-line comment है -->
<p>HTML Comments Example</p>
<!--
यह एक multi-line comment है।
Browser इस हिस्से को ignore करेगा।
-->
<!-- <p>This paragraph will not appear on the page</p> -->
<p>This paragraph is visible.</p>
<!-- comment -->HTML में <table> का उपयोग data को rows और columns के रूप में दिखाने के लिए किया जाता है, ठीक उसी तरह जैसे Excel या Google Sheets में होता है। Table के अंदर headings, rows और cells होते हैं जिनमें data लिखा जाता है।
<table> → <tr> → <th>/<td>
<table>
<tr>
<th>Name</th>
<th>Course</th>
<th>Marks</th>
</tr>
<tr>
<td>Rahul</td>
<td>HTML</td>
<td>85</td>
</tr>
</table>
Border और size control करने के लिए HTML attributes या CSS दोनों का प्रयोग किया जा सकता है।
<table border="1" width="400" height="200">
<tr>
<th>Subject</th>
<th>Marks</th>
</tr>
<tr>
<td>HTML</td>
<td>90</td>
</tr>
</table>
style="border:1px solid black; width:400px;"
ये दो attributes टेबल की readability बढ़ाते हैं। cellpadding → cell के अंदर का spacing (text और border के बीच)। cellspacing → दो cells के बीच की दूरी।
<table border="1" cellpadding="10" cellspacing="5">
<tr>
<th>Name</th>
<th>City</th>
</tr>
<tr>
<td>Rahul</td>
<td>Delhi</td>
</tr>
</table>
border-spacing और padding properties के द्वारा।
<style>
table {
border-collapse: separate;
border-spacing: 5px;
}
td, th {
padding: 10px;
}
</style>
<table style="border-collapse: collapse;" border="1">
<tr><th>Name</th><th>Marks</th></tr>
<tr><td>Sneha</td><td>95</td></tr>
</table>
border-collapse: collapse; का मतलब है – सभी borders एक साथ merge होकर एक line बन जाएँ।
कभी-कभी आपको table cells को merge करना होता है – यानी एक cell को कई rows या columns तक फैलाना होता है। इसके लिए rowspan और colspan attributes उपयोग किए जाते हैं।
<table border="1" cellpadding="8">
<tr>
<th rowspan="2">Name</th>
<th colspan="2">Marks</th>
</tr>
<tr>
<th>HTML</th>
<th>CSS</th>
</tr>
<tr>
<td>Rahul</td>
<td>85</td>
<td>88</td>
</tr>
<tr>
<td>Sneha</td>
<td>92</td>
<td>90</td>
</tr>
</table>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ccc;
padding: 10px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style>
<table>
<tr><th>Name</th><th>Course</th><th>Marks</th></tr>
<tr><td>Rahul</td><td>HTML</td><td>85</td></tr>
<tr><td>Sneha</td><td>CSS</td><td>90</td></tr>
</table>
जब हमें एक जैसी items (जैसे topics, names, features या steps) को क्रम में या bullet points में दिखाना होता है, तब हम Lists का उपयोग करते हैं। HTML में तीन मुख्य प्रकार की lists होती हैं:
Ordered list items अपने आप numbering या alphabet के साथ दिखाई देते हैं। इसका उपयोग step-by-step जानकारी या किसी क्रमबद्ध सूची के लिए किया जाता है।
<ol>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ol>
ऊपर का कोड ब्राउज़र में ऐसे दिखेगा:
<ol type="A"> <!-- Capital letters -->
<li>HTML</li>
<li>CSS</li>
</ol>
<ol type="a"> <!-- Small letters -->
<li>Step 1</li>
<li>Step 2</li>
</ol>
<ol type="I"> <!-- Roman Numerals -->
<li>Chapter 1</li>
<li>Chapter 2</li>
</ol>
1 → Numbers (default)A → Capital lettersa → Small lettersI → Roman numeralsi → Small roman numeralsUnordered list items bullets (•, ○, ▪) के साथ दिखाई देते हैं। इनका उपयोग तब किया जाता है जब list में क्रम (order) मायने नहीं रखता।
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
ऊपर का output कुछ इस तरह दिखेगा:
<ul type="disc"> <!-- default black circle -->
<li>HTML</li>
<li>CSS</li>
</ul>
<ul type="circle"> <!-- hollow circle -->
<li>Apples</li>
<li>Oranges</li>
</ul>
<ul type="square"> <!-- square bullets -->
<li>HTML</li>
<li>JS</li>
</ul>
किसी list item के अंदर एक और list रखी जा सकती है — इसे nested list कहते हैं।
<ul>
<li>Frontend
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</li>
<li>Backend
<ul>
<li>PHP</li>
<li>Node.js</li>
</ul>
</li>
</ul>
Definition list का उपयोग शब्दों और उनके अर्थों (terms & definitions) को दिखाने के लिए किया जाता है। इसमें तीन tags होते हैं:
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language – structure of web pages.</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets – styling web pages.</dd>
<dt>JS</dt>
<dd>JavaScript – adds interactivity to web pages.</dd>
</dl>
Browser output इस प्रकार होगा:
<style>
ul.custom {
list-style-type: square;
background: #eef2ff;
padding: 15px;
border-radius: 10px;
}
ol.custom {
background: #f9f9f9;
padding: 15px;
}
li {
margin: 6px 0;
}
</style>
<ul class="custom">
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
Web pages पर user से data collect करने के लिए HTML forms का उपयोग किया जाता है। जैसे – login form, contact form, feedback form, signup form आदि। Form user input को server तक भेजने का तरीका है।
<form> ... form elements ... </form>
<form action="submit.php" method="post">
<label>Enter your name:</label>
<input type="text" name="username">
<input type="submit" value="Submit">
</form>
ऊपर के example में form data “submit.php” file पर POST method से भेजा जाएगा।
get या post।<form action="save.php" method="post" target="_blank">
...
</form>
Form के अंदर अलग-अलग input लेने के लिए अलग-अलग tags होते हैं, जिन्हें Form Elements कहा जाता है। ये elements user interaction के लिए होते हैं।
<form>
<label>Name:</label>
<input type="text" name="username" placeholder="Enter your name">
</form>
👉 placeholder attribute field के अंदर हल्का hint text दिखाता है। name attribute field का backend name होता है।
<form>
<label>Feedback:</label><br>
<textarea name="message" rows="5" cols="40" placeholder="Write your feedback..."></textarea>
</form>
<textarea> का उपयोग बड़े text जैसे comments या feedback लेने के लिए किया जाता है।
<form>
<label>Select Course:</label>
<select name="course">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="js">JavaScript</option>
</select>
</form>
Radio buttons का उपयोग तब किया जाता है जब user को केवल एक option चुनना होता है (Yes/No, Gender आदि)।
<form>
<label>Gender:</label><br>
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female
</form>
Checkbox से user एक या अधिक options चुन सकता है (multiple choice)।
<form>
<label>Select your skills:</label><br>
<input type="checkbox" name="skill" value="html"> HTML<br>
<input type="checkbox" name="skill" value="css"> CSS<br>
<input type="checkbox" name="skill" value="js"> JavaScript
</form>
<form>
Email: <input type="email" name="email"><br>
Password: <input type="password" name="pass"><br>
Age: <input type="number" min="10" max="50"><br>
Birthday: <input type="date"><br>
Favorite Color: <input type="color"><br>
Upload File: <input type="file">
</form>
<input type="text" name="username" placeholder="Enter name" required autofocus>
<input type="password" name="pass" minlength="6" maxlength="12">
<input type="email" pattern="[a-z0-9._%+-]+@[a-z]+\.[a-z]{2,}">
<form>
Name: <input type="text" name="user"><br><br>
<input type="submit" value="Submit Form">
<input type="reset" value="Reset Form">
</form>
Submit button form data भेजता है और Reset button सभी fields को साफ़ करता है।
Frames का उपयोग एक ही webpage में कई HTML documents को एक साथ दिखाने के लिए किया जाता था। यानी एक ही browser window को कई छोटे भागों (sections) में बाँटकर अलग-अलग pages एक साथ दिखाना।
पहले HTML में `
HTML5 HTML का latest और सबसे powerful version है। इसे World Wide Web Consortium (W3C) ने 2014 में officially release किया था। HTML5 का उद्देश्य webpages को modern, fast और interactive बनाना है।
HTML5 document की basic structure इस प्रकार होती है 👇
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML5 Example</title>
</head>
<body>
<header>Header Area</header>
<nav>Navigation Menu</nav>
<section>
<article>Main Content</article>
</section>
<aside>Sidebar</aside>
<footer>Footer Area</footer>
</body>
</html>
Semantic Elements वे HTML tags हैं जो अपने नाम से ही यह बताते हैं कि उनके अंदर किस प्रकार का content होगा। यानी developer और browser दोनों को content का अर्थ स्पष्ट होता है।
Semantic tags का उपयोग readability और SEO दोनों में सुधार करता है।
| Tag | Description |
|---|---|
| <header> | Website या section का शीर्ष भाग (logo, heading, menu) |
| <nav> | Navigation links के लिए |
| <section> | Page को logical parts में बाँटने के लिए |
| <article> | Independent content जैसे blog post या news article |
| <aside> | Side information या advertisement के लिए |
| <footer> | Page के नीचे copyright या contact info |
| <main> | Page के central content area के लिए |
| <figure> & <figcaption> | Images और उनके captions दिखाने के लिए |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Semantic Page Example</title>
</head>
<body>
<header>
<h1>My Website</h1>
<nav>
<a href="#">Home</a> |
<a href="#">About</a> |
<a href="#">Contact</a>
</nav>
</header>
<main>
<section>
<article>
<h2>HTML5 Semantic Tags</h2>
<p>Semantic tags help describe the structure of web pages clearly.</p>
</article>
</section>
</main>
<aside>
<p>Related links or ads here</p>
</aside>
<footer>
<p>© 2025 My Website. All Rights Reserved.</p>
</footer>
</body>
</html>
HTML5 में अब audio और video files को play करने के लिए किसी external plugin (जैसे Flash Player) की आवश्यकता नहीं होती। इसके लिए HTML5 ने दो नए powerful tags दिए हैं:
<audio> tag का उपयोग background music, podcasts, या sound effects play करने के लिए किया जाता है।
<audio controls>
<source src="music.mp3" type="audio/mpeg">
<source src="music.ogg" type="audio/ogg">
Your browser does not support the audio element.
</audio>
⚙️ Explanation:
| Attribute | Description |
|---|---|
| controls | Media controls दिखाता है (play/pause) |
| autoplay | Page load होते ही audio अपने आप play होता है |
| loop | Audio को बार-बार दोहराता है |
| muted | Audio muted रहता है |
| preload | Audio file कब load होगी (none, metadata, auto) |
<audio controls autoplay loop muted>
<source src="bgmusic.mp3" type="audio/mpeg">
</audio>
<video> tag webpages पर directly videos embed करने के लिए प्रयोग किया जाता है। आप local video files या hosted video URLs दोनों चला सकते हैं।
<video width="480" height="300" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.webm" type="video/webm">
Your browser does not support the video tag.
</video>
ऊपर का code video player दिखाता है जिसमें play, pause, volume और fullscreen controls होंगे।
| Attribute | Description |
|---|---|
| controls | Play/Pause आदि दिखाता है। |
| autoplay | Page load होते ही video चलती है। |
| loop | Video दोहराई जाती है। |
| muted | Video को बिना आवाज़ चलाता है। |
| poster | Video load होने से पहले दिखने वाली preview image। |
| width / height | Video player का आकार तय करता है। |
| preload | File loading behavior (none / metadata / auto)। |
<video width="500" poster="thumbnail.jpg" controls loop>
<source src="intro.mp4" type="video/mp4">
</video>
आप किसी YouTube या external platform का video <iframe> का उपयोग करके embed कर सकते हैं।
<iframe width="560" height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
title="YouTube video"
frameborder="0"
allowfullscreen>
</iframe>
| Media Type | Format | File Extension |
|---|---|---|
| Audio | MP3, OGG, WAV | .mp3, .ogg, .wav |
| Video | MP4, WebM, Ogg | .mp4, .webm, .ogv |
<track> subtitles जोड़ें।<video controls>
<source src="lecture.mp4" type="video/mp4">
<track src="subtitles_en.vtt" kind="subtitles" srclang="en" label="English">
</video>
HTML5 ने form validations को आसान बना दिया है। अब simple attributes जैसे required, pattern, autofocus आदि का इस्तेमाल कर आप बिना JavaScript के basic validations कर सकते हैं। साथ ही HTML5 ने नए input types भी जोड़े हैं जैसे – email, number, date, range आदि।
<form>
Name: <input type="text" name="username" required><br><br>
Email: <input type="email" name="useremail" required><br><br>
Password: <input type="password" name="password" required><br><br>
<input type="submit" value="Submit">
</form>
✳️ इस form में जब तक user सभी fields भर नहीं लेता, form submit नहीं होगा — यह required attribute के कारण होता है।
| Input Type | Description | Example |
|---|---|---|
| text | Normal text input | <input type="text"> |
| Checks for valid email format | <input type="email" required> | |
| number | Accepts only numeric values | <input type="number" min="1" max="100"> |
| date | Shows a date picker | <input type="date"> |
| range | Slider to select range of numbers | <input type="range" min="0" max="100"> |
| tel | For phone numbers | <input type="tel" pattern="[0-9]{10}"> |
| url | For web addresses | <input type="url"> |
| color | Color picker | <input type="color"> |
यह सुनिश्चित करता है कि user field खाली न छोड़े। अगर user बिना value दिए form submit करेगा, browser उसे warning देगा।
<form>
Username: <input type="text" name="username" required>
<input type="submit" value="Submit">
</form>
pattern attribute के ज़रिए आप input के लिए custom format define कर सकते हैं। इसका value एक regular expression होता है।
<form>
Username (Only letters):
<input type="text" name="username" pattern="[A-Za-z]+" required>
<input type="submit" value="Submit">
</form>
<form>
Mobile Number (10 digits):
<input type="tel" pattern="[0-9]{10}" required>
<input type="submit" value="Submit">
</form>
autofocus का उपयोग किसी एक input field पर cursor को page load होते ही automatically set करने के लिए किया जाता है।
<form>
<input type="text" name="fname" autofocus placeholder="Type your name">
<input type="submit" value="Go">
</form>
<form>
Enter your email:
<input type="email" name="useremail" required>
<input type="submit" value="Submit">
</form>
HTML5 number input में आप min, max और step attributes से valid range और step value define कर सकते हैं।
<form>
Age (between 18–60):
<input type="number" min="18" max="60" required>
<input type="submit" value="Submit">
</form>
<form>
Select Quantity (Step 5):
<input type="number" min="0" max="50" step="5">
</form>
HTML5 में built-in calendar date picker होता है। आप min और max attribute से date range भी सेट कर सकते हैं।
<form>
Select Date:
<input type="date" min="2024-01-01" max="2025-12-31">
</form>
<form>
Volume: <input type="range" min="0" max="100" value="50">
</form>
range slider user को interactive तरीके से numeric value select करने देता है।
HTML5 में हम किसी भी external multimedia content — जैसे videos, audio, presentations, maps या documents — को webpage में दिखाने के लिए <embed>, <object> और <iframe> tags का उपयोग कर सकते हैं।
<embed> tag का उपयोग किसी external file को directly webpage में जोड़ने के लिए किया जाता है। यह self-closing tag है (यानि इसका कोई closing tag नहीं होता)।
<embed src="sample.mp4" width="400" height="300">
यह code webpage पर video file (sample.mp4) को 400×300 pixels में दिखाएगा।
HTML5 में आप किसी PDF document को भी embed कर सकते हैं ताकि user उसे बिना download किए सीधे webpage पर देख सके।
<embed src="sample.pdf" width="600" height="500" type="application/pdf">
HTML5 में सबसे आसान तरीका YouTube या Vimeo video embed करने का है <iframe> tag का उपयोग करना।
<iframe width="560" height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
title="YouTube video"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
आप किसी specific location को Google Maps से अपने webpage में embed कर सकते हैं। इसके लिए Google Maps पर “Share → Embed a map” option से link प्राप्त करें।
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3559.088229278046!2d80.943!3d26.848!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x399bfdf!2sLucknow!"
width="600" height="400" style="border:0;" allowfullscreen="" loading="lazy">
</iframe>
आप किसी दूसरे website या web app को भी अपने webpage में embed कर सकते हैं।
<iframe src="https://www.wikipedia.org" width="700" height="400"></iframe>
<object> tag पुराने HTML version से आता है, और यह भी multimedia या documents embed करने के लिए उपयोग होता है। इसका advantage यह है कि आप fallback content भी दे सकते हैं।
<object data="demo.pdf" type="application/pdf" width="600" height="500">
<p>If the PDF is not displayed, <a href="demo.pdf">click here</a> to download.</p>
</object>
HTML5 ने webpage को divide करने के लिए semantic layout tags दिए हैं — जैसे <header>, <nav>, <section>, <article>, <aside>, और <footer>। इन tags के साथ हम CSS का उपयोग करके एक सुंदर और responsive layout बना सकते हैं।
| Tag | Use |
|---|---|
| <header> | Page या section का शीर्ष भाग — heading/logo/menu |
| <nav> | Navigation links रखने के लिए |
| <main> | Page का मुख्य content |
| <section> | Page के अलग-अलग हिस्से |
| <article> | Independent content जैसे blog या post |
| <aside> | Sidebar, ads या related info |
| <footer> | Page के नीचे copyright/contact info |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML5 Layout Example</title>
<style>
/* 🎨 Basic CSS Layout */
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header {
background-color: #0078D7;
color: white;
padding: 15px;
text-align: center;
}
nav {
background: #eee;
padding: 10px;
text-align: center;
}
nav a {
margin: 10px;
text-decoration: none;
color: #0078D7;
font-weight: bold;
}
main {
display: flex;
padding: 20px;
}
section {
flex: 3;
background: #f9f9f9;
padding: 15px;
margin-right: 10px;
}
aside {
flex: 1;
background: #f0f0f0;
padding: 15px;
}
footer {
background: #333;
color: white;
text-align: center;
padding: 10px;
}
</style>
</head>
<body>
<header>
<h1>My First Website</h1>
</header>
<nav>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Services</a>
<a href="#">Contact</a>
</nav>
<main>
<section>
<h2>Welcome to HTML5 Layout</h2>
<p>HTML5 layout tags help create a clean and meaningful webpage structure.</p>
<article>
<h3>Article Example</h3>
<p>This is an independent article inside the main section.</p>
</article>
</section>
<aside>
<h3>Quick Links</h3>
<ul>
<li><a href="#">HTML Basics</a></li>
<li><a href="#">CSS Intro</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</aside>
</main>
<footer>
<p>© 2025 MyWebsite | Designed by Student</p>
</footer>
</body>
</html>
HTML5 layout को responsive बनाने के लिए आप CSS media queries का उपयोग कर सकते हैं। इससे webpage mobile, tablet और desktop पर automatically adjust हो जाता है।
@media (max-width: 768px) {
main {
flex-direction: column;
}
section, aside {
margin: 0 0 10px 0;
}
}
Iframe का अर्थ होता है Inline Frame — यानी एक webpage के अंदर दूसरा webpage दिखाना। इसका tag है <iframe>।
Example के लिए — अगर आप अपने webpage पर किसी और site (जैसे YouTube video, map या form) को दिखाना चाहते हैं, तो iframe सबसे आसान तरीका है।
<iframe src="https://www.example.com" width="600" height="400"></iframe>
यह code आपके page पर “example.com” website को 600×400 pixel के frame में दिखाएगा।
| Attribute | Description |
|---|---|
| src | Iframe में कौन-सी webpage दिखेगी। |
| width / height | Iframe का आकार तय करता है। |
| name | Iframe को नाम देने के लिए (target linking)। |
| frameborder | Border दिखाना या छुपाना (0 या 1)। |
| allowfullscreen | Video को fullscreen में चलाने की अनुमति देता है। |
| loading="lazy" | Iframe को lazy load करता है (performance बढ़ाता है)। |
<iframe src="https://www.wikipedia.org"
width="700" height="400"
frameborder="0"
loading="lazy">
</iframe>
YouTube video को iframe के माध्यम से आसानी से embed किया जा सकता है। आपको केवल YouTube video के “Share → Embed” code को copy करना होता है।
<iframe width="560" height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
title="YouTube Video Player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
Google Maps का embed link “Share → Embed Map” option से मिलता है। इसे सीधे iframe में डाल सकते हैं।
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3559.0!2d80.94!3d26.85"
width="600" height="450" style="border:0;"
allowfullscreen="" loading="lazy">
</iframe>
आप अपने project के किसी और HTML file को भी iframe में दिखा सकते हैं।
<iframe src="about.html" width="600" height="400"></iframe>
यह code “about.html” file को current page में दिखाएगा। यह concept website navigation या preview panels में काम आता है।
आप links को इस तरह design कर सकते हैं कि वे iframe के अंदर open हों। इसके लिए link के target attribute को iframe के name से match करना होता है।
<a href="page1.html" target="myFrame">Open Page 1</a>
<a href="page2.html" target="myFrame">Open Page 2</a>
<iframe name="myFrame" width="600" height="400"></iframe>
<iframe src="demo.html" sandbox></iframe>
नीचे दिए गए सवाल HTML सीखते समय beginners के सबसे common doubts को cover करते हैं। हर answer आसान भाषा और short example के साथ समझाया गया है 👇
HTML का full form है HyperText Markup Language। यह web pages बनाने की basic language है। HTML structure बताता है कि web page पर text, image, link या table कैसे दिखेंगे।
<!DOCTYPE html>
<html>
<head>
<title>My First Page</title>
</head>
<body>
<h1>Hello HTML!</h1>
</body>
</html>
HTML page का structure (ढांचा) बनाता है, जबकि CSS page को सुंदर और styled बनाता है।
<h1>This is HTML</h1>
<p style="color:blue;">This is styled with CSS</p>
Tag = वह keyword जो content को define करता है। Element = start tag + content + end tag।
<p>This is a paragraph</p>
HTML में 6 heading tags होते हैं —
<h1> (सबसे बड़ा) से लेकर <h6> (सबसे छोटा) तक।
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<br> line break देता है (text को नई line पर ले जाता है), जबकि <p> एक पूरा नया paragraph बनाता है।
Welcome to HTML<br>Let's learn together!
<p>This is a new paragraph.</p>
यह webpage पर image दिखाने के लिए प्रयोग होता है। इसका syntax इस प्रकार है:
<img src="image.jpg" alt="Sample Image" width="200" height="150">
Comments code में notes जोड़ने के लिए होते हैं, जिन्हें browser ignore करता है।
<!-- This is a comment -->
<p>Visible content</p>
Links <a> tag से बनते हैं। “href” attribute destination address बताता है।
<a href="https://www.google.com" target="_blank">Visit Google</a>
HTML में तीन प्रकार की lists होती हैं:
<ol>
<li>HTML</li>
<li>CSS</li>
</ol>
<ul>
<li>Apple</li>
<li>Mango</li>
</ul>
<dl>
<dt>HTML</dt>
<dd>Structure of Web Page</dd>
</dl>
HTML5 HTML का latest version है जिसमें multimedia support (audio, video), semantic tags (header, section, footer) और built-in form validations जैसे features शामिल हैं।
<header>My Website</header>
<section>Main Content</section>
<footer>Copyright 2025</footer>