Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

การตั้งค่าความสัมพันธ์ระหว่างเอกสารปัจจุบันและเอกสารลิงก์ใน HTML

ใช้แอตทริบิวต์ rel เพื่อระบุความสัมพันธ์ระหว่างเอกสารปัจจุบันกับเอกสารลิงก์ ทำงานกับ <a>, <area>, <link>

ตัวอย่าง

ลองรันโค้ดต่อไปนี้เพื่อใช้งานแอตทริบิวต์ rel (ตัวอย่างตั้งค่า CSS):

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1>Heading</h1>
    <p>This is demo content.</p>
  </body>
</html>

ค่า rel ที่สำคัญและใช้บ่อย

ค่า rel วัตถุประสงค์ ใช้กับ
stylesheet เชื่อมโยงไฟล์ CSS <link>
preload โหลดทรัพยากรล่วงหน้า (Performance) <link>
prefetch ดึงทรัพยากรล่วงหน้าสำหรับหน้าถัดไป <link>
preconnect เชื่อมต่อ Server ล่วงหน้า (DNS, TCP, TLS) <link>
dns-prefetch Resolve DNS ล่วงหน้า <link>
icon / shortcut icon Favicon <link>
manifest Web App Manifest (PWA) <link>
canonical URL แท้สำหรับ SEO (ป้องกัน Duplicate Content) <link>
alternate เวอร์ชันอื่น (ภาษา, RSS, AMP) <link>
noopener ป้องกัน window.opener access (Security) - ใช้กับ target="_blank" <a>, <area>
noreferrer ไม่ส่ง Referrer header <a>, <area>
nofollow บอก Search Engine ไม่ต้องติดตาม (SEO) <a>, <area>
ugc User Generated Content (Comment links) <a>, <area>
sponsored ลิงก์โฆษณา/สปอนเซอร์ (SEO) <a>, <area>
author ลิงก์ไปหน้าผู้เขียน <a>, <link>
license ลิงก์ไป License <a>, <link>
next, prev หน้าถัดไป/ก่อนหน้า (Pagination) <a>, <link>
help ลิงก์ไป Help/FAQ <a>, <link>
bookmark Permalink <a>
tag Tag/Keyword <a>
external ลิงก์ภายนอก (Non-standard แต่ใช้กัน) <a>

ตัวอย่างการใช้งานจริง

<head>
  <!-- SEO -->
  <link rel="canonical" href="https://example.com/article">
  <link rel="alternate" hreflang="th" href="https://example.com/th/article">
  <link rel="alternate" hreflang="en" href="https://example.com/en/article">
  
  <!-- Performance -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preload" as="font" href="font.woff2" type="font/woff2" crossorigin>
  <link rel="prefetch" href="next-page.html">
  
  <!-- Icons -->
  <link rel="icon" href="/favicon.ico">
  <link rel="icon" sizes="192x192" href="/icon-192.png">
  <link rel="apple-touch-icon" href="/icon-192.png">
  <link rel="manifest" href="/manifest.json">
</head>

<body>
  <article>
    <a rel="author" href="/author/john">John Doe</a>
    <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>
    <a rel="bookmark" href="/article/123">Permalink</a>
    <a rel="tag" href="/tag/html">HTML</a>
  </article>
  
  <nav>
    <a rel="prev" href="/page/1">Previous</a>
    <a rel="next" href="/page/3">Next</a>
  </nav>
  
  <a href="https://external.com" target="_blank" rel="noopener noreferrer">External</a>
  <a href="/sponsored" rel="sponsored">Sponsored Link</a>
  <a href="/comments" rel="ugc">User Comment Link</a>
</body>

rel="preload" - Performance Optimization

<link rel="preload" as="style" href="critical.css">
<link rel="preload" as="script" href="critical.js">
<link rel="preload" as="font" href="font.woff2" type="font/woff2" crossorigin>
<link rel="preload" as="image" href="hero.jpg">
<link rel="preload" as="video" href="video.mp4">

as attribute บอกเบราว์เซอร์ประเภททรัพยากร เพื่อตั้ง Priority และ Headers ให้ถูกต้อง