0Pricing
HTML Academy · บทเรียน

แอตทริบิวต์ hidden

สลับการมองเห็นขององค์ประกอบด้วยแอตทริบิวต์บูลีน hidden

แอตทริบิวต์ hidden เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

hidden คืออะไร

แอตทริบิวต์ hidden ทำให้องค์ประกอบมองไม่เห็นและนำออกจากแผนผังการเข้าถึง:

<p hidden>This paragraph is hidden.</p>
<!-- Equivalent to: display: none in CSS -->
<!-- The element is in the DOM but not rendered -->
<!-- Screen readers do not announce hidden elements -->

hidden เป็นแอตทริบิวต์บูลีน

แอตทริบิวต์บูลีนจะมีอยู่ (เป็นจริง) หรือไม่มีอยู่ (เป็นเท็จ) เท่านั้น โดยไม่ต้องระบุค่า:

<!-- All of these are equivalent: -->
<div hidden>Content</div>
<div hidden="">Content</div>
<div hidden="hidden">Content</div>

<!-- Remove with JavaScript: -->
element.removeAttribute('hidden');

<!-- Or set: -->
element.setAttribute('hidden', '');

hidden เทียบกับ display:none และ visibility:hidden

มีสามวิธีในการซ่อนองค์ประกอบ:

/* hidden attribute = display:none */
/* Element is removed from flow, invisible to AT */

/* visibility: hidden */
/* Element occupies space but is invisible */
/* Still read by some screen readers */

/* opacity: 0 */
/* Element occupies space, invisible, still interactive */
/* Still read by screen readers */

/* Hidden attribute is the simplest for fully hiding content */

สลับการมองเห็นด้วย JavaScript

ควบคุมการมองเห็นด้วยการเพิ่มหรือนำแอตทริบิวต์ hidden ออก:

const modal = document.getElementById('modal');

// Show:
modal.removeAttribute('hidden');
// or:
modal.hidden = false;

// Hide:
modal.setAttribute('hidden', '');
// or:
modal.hidden = true;

// Toggle:
modal.toggleAttribute('hidden');

CSS สามารถแทนที่ hidden ได้

display ของ CSS สามารถแทนที่แอตทริบิวต์ hidden ได้ จึงต้องระมัดระวัง:

/* This makes hidden elements visible again: */
[hidden] {
  display: block !important;
}

/* Do not do this unless you have a very specific reason */

/* The hidden attribute should be trusted as the source of truth for visibility */

hidden เทียบกับ aria-hidden

การซ่อนมีสองประเภทที่แตกต่างกัน:

  • hidden — ซ่อนทั้งในเชิงภาพและนำออกจากแผนผังการเข้าถึง
  • aria-hidden="true" — ซ่อนจากแผนผังการเข้าถึงเท่านั้น แต่ยังแสดงผลในเชิงภาพ
<!-- hidden: nothing sees it -->
<div hidden>Completely hidden</div>

<!-- aria-hidden: visual users see it, screen readers skip it -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>

รูปแบบการแสดง/ซ่อน

รูปแบบการสลับแสดง/ซ่อนแบบคลาสสิกด้วย hidden:

<button
  aria-expanded="false"
  aria-controls="menu"
  id="menu-btn"
>Menu</button>

<ul id="menu" hidden>
  <li><a href="/">Home</a></li>
  <li><a href="/about">About</a></li>
</ul>

<script>
document.getElementById('menu-btn').addEventListener('click', function() {
  const menu = document.getElementById('menu');
  const expanded = this.getAttribute('aria-expanded') === 'true';
  menu.hidden = expanded;
  this.setAttribute('aria-expanded', !expanded);
});
</script>

ค่า until-found (แบบใหม่)

HTML 5.1 ขึ้นไปเพิ่ม hidden="until-found" สำหรับเนื้อหาที่ค้นหาได้แต่ถูกยุบไว้:

<details>
  <summary>Read More</summary>
  <div hidden="until-found" id="more-content">
    <p>This content is collapsed but findable by Ctrl+F.</p>
  </div>
</details>
<!-- hidden="until-found" hides visually but allows browser Ctrl+F to find and reveal it -->
<!-- Only supported in Chromium-based browsers currently -->

การทำงานกับโปรแกรมอ่านหน้าจอ

แอตทริบิวต์ hidden จะซ่อนเนื้อหาจากเทคโนโลยีสิ่งอำนวยความสะดวกโดยสมบูรณ์:

  • โปรแกรมอ่านหน้าจอจะข้ามองค์ประกอบที่ซ่อนอยู่
  • โฟกัสด้วย Tab จะไม่เข้าสู่องค์ประกอบที่ซ่อนอยู่
  • วิธีนี้เหมาะสำหรับโมดัล เมนูนอกพื้นที่แสดงผล และแผงตามเงื่อนไขที่ไม่ควรถูกสำรวจขณะซ่อนอยู่

กรณีการใช้งานทั่วไป

ควรใช้แอตทริบิวต์ hidden เมื่อใด:

  • กล่องโต้ตอบแบบโมดัลก่อนเปิด
  • เนื้อหาของแผงแท็บ (แสดงแผงของแท็บที่ใช้งานอยู่และซ่อนแผงอื่น)
  • ตัวช่วยสร้างแบบแบ่งเป็นขั้นตอน (แสดงขั้นตอนปัจจุบัน)
  • การเปิดเผยเนื้อหาแบบค่อยเป็นค่อยไป (แสดงข้อมูลเพิ่มเติมเมื่อคลิก)
  • สถานะกำลังโหลด (แทนที่ตัวหมุนแสดงการโหลดด้วยเนื้อหา)

การคงสถานะการซ่อนไว้

ใช้ localStorage เพื่อจดจำสถานะการมองเห็นระหว่างการโหลดหน้าเว็บแต่ละครั้ง:

const panel = document.getElementById('info-panel');
const key = 'info-panel-visible';

// Restore state:
if (localStorage.getItem(key) === 'false') {
  panel.hidden = true;
}

// On toggle:
document.getElementById('toggle-btn').addEventListener('click', () => {
  panel.hidden = !panel.hidden;
  localStorage.setItem(key, !panel.hidden);
});

ตรวจสอบความเข้าใจ

แอตทริบิวต์ hidden แตกต่างจาก aria-hidden อย่างไร

ทบทวน: แอตทริบิวต์ hidden

สาระสำคัญของแอตทริบิวต์ hidden:

  • hidden — เทียบเท่ากับ display: none
  • เป็นบูลีน: มีแอตทริบิวต์ = ซ่อน ไม่มีแอตทริบิวต์ = แสดง
  • นำออกจากแผนผังการเข้าถึง (ต่างจาก visibility: hidden)
  • สลับสถานะด้วย element.hidden = true/false
  • aria-hidden="true" ซ่อนจาก AT เท่านั้น และยังคงแสดงผลในเชิงภาพ

คำถามที่พบบ่อย

บทเรียน “แอตทริบิวต์ hidden” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แอตทริบิวต์ hidden” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แอตทริบิวต์ hidden”

สลับการมองเห็นขององค์ประกอบด้วยแอตทริบิวต์บูลีน hidden คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “แอตทริบิวต์ hidden” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. id, class, style และ title
  2. แอตทริบิวต์ hidden
  3. tabindex และ accesskey
  4. แอตทริบิวต์ข้อมูลกำหนดเอง data-*
← กลับไปที่ HTML Academy