HTML คือภาษาพื้นฐานที่สุดของการทำเว็บ ทุกหน้าเว็บที่คุณเห็นบนอินเทอร์เน็ตล้วนสร้างจาก HTML บทความนี้จะพาคุณเรียนรู้ตั้งแต่ศูนย์จนเข้าใจโครงสร้าง แท็กสำคัญ และเขียนหน้าเว็บจริงได้
═══════════════════════════════════════
📌 1. HTML คืออะไร
═══════════════════════════════════════
HTML ย่อมาจาก HyperText Markup Language
เป็น "ภาษามาร์กอัป" ที่ใช้กำหนดโครงสร้างและเนื้อหาของหน้าเว็บ
ไม่ใช่ภาษาโปรแกรม (ไม่มีตรรกะ if/loop) แต่ใช้ "แท็ก" (Tag) บอกเบราว์เซอร์ว่า
ส่วนไหนเป็นหัวข้อ ย่อหน้า รูปภาพ ลิงก์ ฯลฯ
เปรียบเทียบง่าย ๆ กับการสร้างบ้าน:
• HTML = โครงสร้างบ้าน (เสา ผนัง ห้อง)
• CSS = การตกแต่ง (สี วอลเปเปอร์ เฟอร์นิเจอร์)
• JavaScript = ระบบไฟฟ้า/การทำงาน (เปิดปิดไฟ ประตูอัตโนมัติ)
═══════════════════════════════════════
🏷️ 2. แท็ก (Tag) และอิลิเมนต์ (Element) ทำงานอย่างไร
═══════════════════════════════════════
แท็กส่วนใหญ่มาเป็น "คู่" คือ แท็กเปิด และ แท็กปิด (มี / นำหน้า)
<p>สวัสดีชาวโลก</p>
│ │ │
│ └เนื้อหา └แท็กปิด
└แท็กเปิด
• <p> = แท็กเปิด (opening tag)
• สวัสดีชาวโลก = เนื้อหา (content)
• </p> = แท็กปิด (closing tag)
• ทั้งหมดรวมกัน = 1 อิลิเมนต์ (element)
บางแท็กไม่มีแท็กปิด เรียกว่า "Empty/Void Element" เช่น
<br> (ขึ้นบรรทัดใหม่)
<img> (รูปภาพ)
<hr> (เส้นคั่น)
═══════════════════════════════════════
🧱 3. โครงสร้างพื้นฐานของหน้า HTML
═══════════════════════════════════════
ทุกหน้า HTML ต้องมีโครงสร้างหลักแบบนี้เสมอ
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ชื่อเว็บของฉัน</title>
</head>
<body>
<h1>สวัสดีครับ</h1>
<p>นี่คือหน้าเว็บแรกของผม</p>
</body>
</html>
อธิบายแต่ละส่วน:
• <!DOCTYPE html> → บอกว่าเป็นเอกสาร HTML5
• <html lang="th"> → ราก(root)ของเอกสาร กำหนดภาษาเป็นไทย
• <head> → ข้อมูลเบื้องหลัง (ไม่แสดงบนหน้า) เช่น title, meta, ลิงก์ CSS
• <meta charset="UTF-8"> → กำหนดชุดอักขระ (รองรับภาษาไทย/อีโมจิ)
• <meta name="viewport"...> → ทำให้แสดงผลดีบนมือถือ (สำคัญมาก!)
• <title> → ชื่อที่แสดงบนแท็บเบราว์เซอร์
• <body> → เนื้อหาทั้งหมดที่ผู้ใช้เห็นบนหน้าจอ
═══════════════════════════════════════
✍️ 4. แท็กข้อความที่ใช้บ่อย
═══════════════════════════════════════
หัวข้อ (Heading) มี 6 ระดับ h1 (ใหญ่สุด) ถึง h6 (เล็กสุด)
<h1>หัวข้อใหญ่สุด</h1>
<h2>หัวข้อรอง</h2>
<h3>หัวข้อย่อย</h3>
ย่อหน้าและการจัดข้อความ
<p>นี่คือย่อหน้าหนึ่ง</p>
<b>ตัวหนา</b> หรือ <strong>สำคัญ (ตัวหนา)</strong>
<i>ตัวเอียง</i> หรือ <em>เน้น (ตัวเอียง)</em>
<u>ขีดเส้นใต้</u>
<mark>ไฮไลต์</mark>
<br> → ขึ้นบรรทัดใหม่
<hr> → เส้นคั่นแนวนอน
*** เคล็ดลับ: ใช้ <strong> และ <em> แทน <b>/<i> จะดีต่อ SEO และการเข้าถึง ***
═══════════════════════════════════════
🔗 5. ลิงก์และรูปภาพ
═══════════════════════════════════════
ลิงก์ (Anchor) — ใช้แท็ก <a> กับแอตทริบิวต์ href
<a href="https://www.google.com">ไปที่ Google</a>
<a href="https://google.com" target="_blank">เปิดในแท็บใหม่</a>
<a href="page2.html">ไปหน้าถัดไป</a>
รูปภาพ — ใช้แท็ก <img> (ไม่มีแท็กปิด)
<img src="cat.jpg" alt="รูปแมวน่ารัก" width="300">
• src → ที่อยู่ของรูป (path หรือ URL)
• alt → ข้อความแทนรูป (แสดงเมื่อโหลดรูปไม่ได้ + ช่วยผู้พิการทางสายตา)
• width → ความกว้าง (พิกเซล)
═══════════════════════════════════════
📋 6. รายการ (List)
═══════════════════════════════════════
รายการแบบไม่เรียงลำดับ (จุด bullet) — <ul>
<ul>
<li>แอปเปิล</li>
<li>กล้วย</li>
<li>ส้ม</li>
</ul>
รายการแบบเรียงลำดับ (ตัวเลข) — <ol>
<ol>
<li>ตื่นนอน</li>
<li>แปรงฟัน</li>
<li>กินข้าว</li>
</ol>
• <ul> = Unordered List (มีจุดนำหน้า)
• <ol> = Ordered List (มีตัวเลขนำหน้า)
• <li> = List Item (แต่ละรายการ)
═══════════════════════════════════════
📊 7. ตาราง (Table)
═══════════════════════════════════════
<table border="1">
<thead>
<tr>
<th>ชื่อ</th>
<th>อายุ</th>
</tr>
</thead>
<tbody>
<tr>
<td>สมชาย</td>
<td>25</td>
</tr>
<tr>
<td>สมหญิง</td>
<td>23</td>
</tr>
</tbody>
</table>
• <table> → ตาราง
• <tr> → แถว (Table Row)
• <th> → หัวคอลัมน์ (ตัวหนา จัดกลาง)
• <td> → ช่องข้อมูล (Table Data)
• <thead>/<tbody> → แบ่งส่วนหัว/ตัวตาราง
═══════════════════════════════════════
📝 8. ฟอร์ม (Form) — รับข้อมูลจากผู้ใช้
═══════════════════════════════════════
<form action="/submit" method="POST">
<label>ชื่อ:</label>
<input type="text" name="name" placeholder="กรอกชื่อ">
<label>อีเมล:</label>
<input type="email" name="email" required>
<label>รหัสผ่าน:</label>
<input type="password" name="password">
<label>ข้อความ:</label>
<textarea name="message" rows="4"></textarea>
<label>เพศ:</label>
<select name="gender">
<option value="m">ชาย</option>
<option value="f">หญิง</option>
</select>
<button type="submit">ส่งข้อมูล</button>
</form>
ชนิดของ input (type) ที่ใช้บ่อย:
• text → ข้อความทั่วไป
• email → อีเมล (ตรวจรูปแบบให้)
• password → รหัสผ่าน (แสดงเป็นจุด)
• number → ตัวเลข
• date → วันที่
• checkbox → ช่องติ๊กเลือกได้หลายอัน
• radio → เลือกได้อันเดียว
• file → อัปโหลดไฟล์
แอตทริบิวต์สำคัญ: name (ชื่อฟิลด์), placeholder (ข้อความแนะนำ),
required (บังคับกรอก)
═══════════════════════════════════════
🏗️ 9. Semantic Tags — แท็กเชิงความหมาย (HTML5)
═══════════════════════════════════════
แทนที่จะใช้ <div> ไปหมด ควรใช้แท็กที่สื่อความหมาย ช่วยเรื่อง SEO และการเข้าถึง
<header> → ส่วนหัวเว็บ (โลโก้ เมนู)
<nav> → แถบเมนูนำทาง
<main> → เนื้อหาหลัก
<section> → ส่วน/หมวดของเนื้อหา
<article> → บทความ/เนื้อหาที่จบในตัว
<aside> → เนื้อหาข้าง (sidebar)
<footer> → ส่วนท้ายเว็บ
ตัวอย่างโครงหน้าเว็บ:
<body>
<header>โลโก้ + เมนู</header>
<nav>หน้าแรก | สินค้า | ติดต่อ</nav>
<main>
<article>เนื้อหาบทความ</article>
<aside>โฆษณา/ลิงก์ที่เกี่ยวข้อง</aside>
</main>
<footer>© 2026 เว็บของฉัน</footer>
</body>
═══════════════════════════════════════
⚙️ 10. แอตทริบิวต์ (Attribute) และ Block vs Inline
═══════════════════════════════════════
แอตทริบิวต์ = ข้อมูลเสริมของแท็ก เขียนในแท็กเปิด รูปแบบ ชื่อ="ค่า"
<img src="a.jpg" alt="ภาพ" width="200">
<a href="x.html" target="_blank" title="คำอธิบาย">ลิงก์</a>
<div id="box1" class="card">กล่อง</div>
แอตทริบิวต์สากลที่ใช้ได้ทุกแท็ก:
• id → ชื่อเฉพาะ (ห้ามซ้ำในหน้าเดียว) ใช้อ้างอิง
• class → กลุ่ม (ซ้ำได้) ใช้จัดสไตล์ด้วย CSS
• style → ใส่ CSS ตรง ๆ เช่น style="color:red;"
Block vs Inline:
• Block-level → ขึ้นบรรทัดใหม่ กินความกว้างเต็มแถว
เช่น <div>, <p>, <h1>, <ul>, <section>
• Inline → อยู่ในบรรทัดเดียวกัน กินพื้นที่เท่าเนื้อหา
เช่น <span>, <a>, <b>, <img>
═══════════════════════════════════════
🎯 11. ตัวอย่างหน้าเว็บสมบูรณ์ (นำไปใช้ได้จริง)
═══════════════════════════════════════
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>โปรไฟล์ของฉัน</title>
</head>
<body>
<header>
<h1>สมชาย ใจดี</h1>
<p>นักพัฒนาเว็บมือใหม่</p>
</header>
<nav>
<a href="#about">เกี่ยวกับ</a> |
<a href="#skills">ทักษะ</a> |
<a href="#contact">ติดต่อ</a>
</nav>
<main>
<section id="about">
<h2>เกี่ยวกับฉัน</h2>
<p>สวัสดีครับ ผมกำลังเรียน HTML อยู่</p>
</section>
<section id="skills">
<h2>ทักษะ</h2>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</section>
</main>
<footer>
<p>© 2026 สมชาย ใจดี</p>
</footer>
</body>
</html>
ลองคัดลอกโค้ดนี้ไปวางในไฟล์ .html แล้วเปิดด้วยเบราว์เซอร์ได้เลย!
═══════════════════════════════════════
✅ 12. สรุปและเคล็ดลับสำหรับมือใหม่
═══════════════════════════════════════
• ทุกหน้าเริ่มด้วย <!DOCTYPE html> และมี head + body เสมอ
• ปิดแท็กให้ครบ และจัดย่อหน้า (indent) ให้อ่านง่าย
• ใช้ Semantic tags แทน <div> ล้วน ๆ เพื่อ SEO ที่ดี
• ใส่ alt ให้รูปภาพเสมอ และใส่ viewport meta เพื่อรองรับมือถือ
• HTML วางโครงสร้าง → ใช้ CSS แต่งสวย → ใช้ JavaScript เพิ่มลูกเล่น
จำไว้ว่า: วิธีเรียน HTML ที่ดีที่สุดคือ "ลงมือเขียนจริง"
เปิดโปรแกรมแก้ไขข้อความ สร้างไฟล์ .html แล้วทดลองเล่นกับแท็กต่าง ๆ 🚀