การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์
ข้ามไปยังส่วนต่าง ๆ ของหน้าด้วยแอตทริบิวต์ id และลิงก์แฮช
การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์ เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
ตัวระบุส่วนย่อยคืออะไร
ตัวระบุส่วนย่อยคือส่วนของที่อยู่เว็บหลังสัญลักษณ์ #:
https://example.com/page#section-3
│
└─ Fragment: "section-3"
<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->การสร้างจุดหมายลิงก์ด้วยรหัสประจำตัว
หากต้องการสร้างลิงก์ไปยังส่วนหนึ่งของหน้า ให้กำหนด id ให้ส่วนนั้น:
<!-- The target: give any element an id -->
<h2 id="installation">Installation</h2>
<h2 id="configuration">Configuration</h2>
<h2 id="faq">Frequently Asked Questions</h2>
<!-- The link: use # + id value -->
<a href="#installation">Jump to Installation</a>
<a href="#faq">Go to FAQ</a>การสร้างลิงก์จากอีกหน้า
คุณสามารถสร้างลิงก์ไปยังส่วนหนึ่งของอีกหน้าได้:
<!-- From a different page -->
<a href="/docs/guide#installation">Installation Guide</a>
<!-- Loads /docs/guide and scrolls to #installation -->
<!-- Absolute URL to a section -->
<a href="https://example.com/docs#api">API Documentation</a>หลักการตั้งชื่อรหัสประจำตัว
หลักการสำหรับค่า id ที่ถูกต้อง:
- ต้องไม่ซ้ำกันภายในหน้า — ห้ามมีองค์ประกอบสองรายการใช้ id เดียวกัน
- ใน CSS ห้ามขึ้นต้นด้วยตัวเลข (แม้จะถูกต้องใน HTML)
- ห้ามมีช่องว่าง — ให้ใช้ยัติภังค์:
my-section - ตัวพิมพ์เล็กใหญ่มีความหมายต่างกัน:
#FAQและ#faqถือว่าแตกต่างกัน
รูปแบบสารบัญ
ลิงก์ส่วนย่อยช่วยให้สร้างสารบัญภายในหน้าได้:
<nav aria-label="Table of Contents">
<ol>
<li><a href="#intro">Introduction</a></li>
<li><a href="#setup">Setup</a></li>
<li><a href="#usage">Usage</a></li>
<li><a href="#api">API Reference</a></li>
</ol>
</nav>
<h2 id="intro">Introduction</h2>
<h2 id="setup">Setup</h2>การเลื่อนแบบนุ่มนวลด้วย CSS
เพิ่มพฤติกรรมการเลื่อนแบบนุ่มนวลให้กับการนำทางไปยังส่วนย่อย:
/* Apply to the entire page */
html {
scroll-behavior: smooth;
}
/* Or for specific containers */
.scrollable {
scroll-behavior: smooth;
}ระยะเว้นการเลื่อนสำหรับส่วนหัวแบบตรึง
แถบนำทางแบบตรึงจะทับส่วนที่เลื่อนไปถึง แก้ไขได้ด้วย scroll-margin-top:
/* If you have a 60px fixed header */
:target {
scroll-margin-top: 70px;
}
/* Or set globally for all headings */
h2, h3, h4 {
scroll-margin-top: 70px;
}
/* scroll-margin-top offsets where the browser scrolls to */คลาสเทียมของ CSS สำหรับส่วนเป้าหมาย
จัดรูปแบบส่วนที่เป็นเป้าหมายปัจจุบันด้วย :target:
/* Highlight the targeted section */
:target {
background-color: #fff3cd;
outline: 2px solid #ffc107;
padding: 1rem;
}
<!-- Result: when user clicks #installation, -->
<!-- the installation section gets highlighted -->ลิงก์กลับไปด้านบน
รูปแบบที่ใช้กันทั่วไป — ลิงก์กลับไปด้านบนโดยใช้ส่วนย่อย:
<a href="#top" id="back-to-top">↑ Back to top</a>
<!-- Link to page top: either id="top" on body or use empty href # -->
<!-- Always give it meaningful text for accessibility -->
<!-- Position it fixed with CSS: -->
<!--
#back-to-top {
position: fixed;
bottom: 1rem;
right: 1rem;
}
-->ส่วนย่อยกับประวัติเบราว์เซอร์
การนำทางไปยังส่วนย่อยจะเพิ่มรายการลงในประวัติเบราว์เซอร์:
- การคลิกลิงก์ส่วนย่อยจะเพิ่มรายการประวัติ
- ปุ่มย้อนกลับของเบราว์เซอร์จะนำกลับไปยังตำแหน่งการเลื่อนก่อนหน้า
- นี่เป็นพฤติกรรมปกติ — แอปพลิเคชันแบบหน้าเดียวสามารถใช้ pushState เพื่อจัดการประวัติได้
จุดยึดที่มีชื่อ (แบบเดิม)
ก่อนจะมีแอตทริบิวต์ id มักใช้ <a name> สำหรับจุดยึด — ปัจจุบันเลิกใช้แล้ว:
<!-- Old way (do not use): -->
<a name="section-1"></a>
<h2>Section 1</h2>
<!-- Modern way: -->
<h2 id="section-1">Section 1</h2>
<!-- Use id on the target element, not a separate anchor tag -->ตรวจสอบอย่างรวดเร็ว
คุณสมบัติ CSS ใดช่วยป้องกันไม่ให้แถบนำทางแบบตรึงบังส่วนที่เลื่อนไปถึง
สรุป: ตัวระบุส่วนย่อย
สิ่งสำคัญของลิงก์ส่วนย่อย:
#idใน href จะเลื่อนไปยังองค์ประกอบที่มีidดังกล่าว- องค์ประกอบเป้าหมายทุกองค์ประกอบต้องมีแอตทริบิวต์
idที่ไม่ซ้ำกัน - ใช้ได้ทั้งในหน้าเดียวกันและจากหน้าอื่น
scroll-behavior: smoothใช้สำหรับการเลื่อนแบบมีภาพเคลื่อนไหวscroll-margin-topช่วยหลีกเลี่ยงการทับซ้อนของส่วนหัวแบบตรึง- คลาสเทียม
:targetใช้เน้นส่วนปัจจุบัน
เรียนรู้ HTML ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 40
- บทเรียน
- 159
คำถามที่พบบ่อย
บทเรียน “การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์”
ข้ามไปยังส่วนต่าง ๆ ของหน้าด้วยแอตทริบิวต์ id และลิงก์แฮช คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม
ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- องค์ประกอบ anchor และแอตทริบิวต์ href
- URL แบบสัมบูรณ์เทียบกับแบบสัมพัทธ์
- การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download
- การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์