หัวข้อ HTML คืออะไร?
หัวข้อ (Headings) ใน HTML มี 6 ระดับ ตั้งแต่ <h1> (สำคัญที่สุด) ถึง <h6> (สำคัญน้อยที่สุด) ใช้สำหรับ **จัดโครงสร้างเนื้อหา** ให้เป็นลำดับชั้นชัดเจน
ลำดับความสำคัญและการใช้งาน
| แท็ก | ระดับ | การใช้งานทั่วไป | ขนาดตัวอักษรเริ่มต้น (ประมาณ) |
|---|---|---|---|
<h1> | 1 (สูงสุด) | หัวข้อหลักของหน้า (ควรมีเพียง 1 ต่อหน้า) | 2em (32px) |
<h2> | 2 | หัวข้อย่อยหลัก (Section) | 1.5em (24px) |
<h3> | 3 | หัวข้อย่อยรอง (Subsection) | 1.17em (18.7px) |
<h4> | 4 | หัวข้อย่อยลึกขึ้น | 1em (16px) |
<h5> | 5 | หัวข้อย่อยลึกมาก | 0.83em (13.3px) |
<h6> | 6 (ต่ำสุด) | หัวข้อย่อยสุดท้าย | 0.67em (10.7px) |
ความสำคัญต่อ SEO และ Accessibility
- Search Engines (Google, Bing): ใช้หัวข้อในการทำความเข้าใจโครงสร้างและหัวข้อหลักของหน้า
<h1>มีน้ำหนักมากที่สุด - Screen Readers: ผู้ใช้พิการสายตาใช้หัวข้อในการนำทาง (Navigate by headings) - ต้องเรียงลำดับถูกต้อง
- Featured Snippets: Google มักดึงเนื้อหาจาก
<h2>,<h3>มาแสดงในผลค้นหา
กฎการใช้งานที่ถูกต้อง (Heading Hierarchy)
- เริ่มต้นด้วย
<h1>เพียง **หนึ่งครั้งต่อหน้า** (Single Page Application อาจมีหลายหน้าในหน้าเดียวกัน แต่แต่ละ View ควรมี h1 เดียว) - ไม่ข้ามระดับ:
h1 → h2 → h3✅ |h1 → h3❌ (ข้าม h2) - ไม่ใช้หัวข้อเพื่อการจัดรูปแบบ (Styling) เท่านั้น - ให้ใช้ CSS
- ไม่ใส่บล็อกเอลิเมนต์ (div, p, ul) ภายในหัวข้อ
ตัวอย่างโครงสร้างที่ถูกต้อง
<!DOCTYPE html>
<html>
<body>
<h1>คู่มือการทำอาหารไทยฉบับสมบูรณ์</h1>
<section>
<h2>วัตถุดิบหลัก</h2>
<p>เนื้อหาเกี่ยวกับวัตถุดิบ...</p>
<h3>สมุนไพรไทย</h3>
<p>รายละเอียดสมุนไพร...</p>
<h3>เครื่องเทศ</h3>
<p>รายละเอียดเครื่องเทศ...</p>
<h4>พริกขี้หนู</h4>
<p>รายละเอียดพริก...</p>
</section>
<section>
<h2>วิธีการทำ</h2>
<h3>ขั้นตอนเตรียมวัตถุดิบ</h3>
<h3>ขั้นตอนปรุงอาหาร</h3>
</section>
</body>
</html>
ตัวอย่างโต้ตอบ: เปลี่ยนระดับหัวข้อด้วย JavaScript
<!DOCTYPE html>
<html>
<body>
<h2>ตัวอย่างเปลี่ยนระดับหัวข้อ</h2>
<label>ข้อความ: <input type="text" id="txt" placeholder="พิมพ์หัวข้อ..."></label>
<br><br>
<label><input type="radio" name="level" value="h1" checked> H1</label>
<label><input type="radio" name="level" value="h2"> H2</label>
<label><input type="radio" name="level" value="h3"> H3</label>
<label><input type="radio" name="level" value="h4"> H4</label>
<label><input type="radio" name="level" value="h5"> H5</label>
<label><input type="radio" name="level" value="h6"> H6</label>
<br><br>
<button onclick="preview()">แสดงตัวอย่าง</button>
<div>ตัวอย่าง: <span id="preview">(จะแสดงที่นี่)</span></div>
<script>
function preview() {
var text = document.getElementById('txt').value;
var level = document.querySelector('input[name="level"]:checked').value;
var preview = document.getElementById('preview');
if (!text) { preview.innerHTML = '<em>กรุณาพิมพ์ข้อความ</em>'; return; }
preview.innerHTML = '<' + level + '>' + text + '</' + level + '>';
}
</script>
</body>
</html>
ข้อผิดพลาดที่พบบ่อย
- ใช้
<h1>หลายครั้งในหน้าเดียว (สับสน Search Engine) - ใช้
<h3>ทันทีหลัง<h1>โดยไม่มี<h2> - ใช้หัวข้อสำหรับข้อความทั่วไปที่ไม่ใช่หัวข้อ (เช่น ใช้ h3 ทำให้ตัวอักษรใหญ่)
- ไม่มี
<h1>เลยในหน้า