Atrybut hidden
Przełączać widoczność elementu za pomocą logicznego atrybutu hidden.
Atrybut hidden to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.
Czym jest hidden?
Atrybut hidden sprawia, że element staje się niewidoczny i zostaje usunięty z drzewa dostępności:
<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 jako atrybut logiczny
Atrybuty logiczne są albo obecne (prawda), albo nieobecne (fałsz) — nie wymagają wartości:
<!-- 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 a display:none i visibility:hidden
Trzy sposoby ukrywania elementów:
/* 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 */Przełączanie widoczności za pomocą JavaScript
Widocznością można sterować przez dodawanie i usuwanie atrybutu 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 może nadpisać hidden
Właściwość display CSS może nadpisać atrybut hidden — należy zachować ostrożność:
/* 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 a aria-hidden
Dwa różne rodzaje ukrywania:
hidden— element jest niewidoczny i usunięty z drzewa dostępnościaria-hidden="true"— element jest ukryty tylko przed drzewem dostępności, ale nadal jest renderowany wizualnie
<!-- 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>Wzorzec pokazywania i ukrywania
Klasyczny przełącznik pokazywania i ukrywania z użyciem 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>Wartość until-found (nowość)
HTML 5.1+ wprowadził hidden="until-found" do oznaczania treści, którą można wyszukiwać, ale która jest domyślnie zwinięta:
<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 -->Zachowanie czytników ekranu
Atrybut hidden całkowicie ukrywa treść przed technologiami asystującymi:
- Czytniki ekranu pomijają ukryte elementy
- Przeniesienie fokusu klawiszem Tab nie obejmuje ukrytych elementów
- Jest to właściwe rozwiązanie w przypadku okien modalnych, menu wysuwanych poza ekran i warunkowych paneli, których nie należy przeglądać, gdy są ukryte
Typowe zastosowania
Kiedy używać atrybutu hidden:
- Okna modalne przed ich otwarciem
- Zawartość paneli kart (pokazywanie panelu aktywnej karty i ukrywanie pozostałych)
- Kreatory podzielone na kroki (pokazywanie bieżącego kroku)
- Stopniowe ujawnianie treści (pokazywanie dodatkowych informacji po kliknięciu)
- Stany ładowania (zastępowanie wskaźnika ładowania treścią)
Zapisywanie stanu ukrycia
Użyj localStorage, aby pamiętać stan widoczności między kolejnymi wczytaniami strony:
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);
});Szybkie sprawdzenie
Czym różni się atrybut hidden od aria-hidden?
Podsumowanie: atrybut hidden
Najważniejsze informacje o atrybucie hidden:
hidden— odpowiednikdisplay: none- Atrybut logiczny: obecność oznacza ukrycie, a brak oznacza widoczność
- Element zostaje usunięty z drzewa dostępności (w przeciwieństwie do
visibility: hidden) - Przełączanie za pomocą
element.hidden = true/false aria-hidden="true"ukrywa element tylko przed technologiami asystującymi, ale zachowuje jego renderowanie wizualne
Często zadawane pytania
Czy lekcja „Atrybut hidden” jest bezpłatna?
Tak — pełny tekst „Atrybut hidden” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Atrybut hidden”?
Przełączać widoczność elementu za pomocą logicznego atrybutu hidden. Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć HTML Academy?
Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Atrybut hidden”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?
Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.