แอตทริบิวต์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ