0Pricing
HTML Academy · Урок

Атрибут hidden

Управляйте видимостью элемента с помощью логического атрибута hidden

«Атрибут hidden» — бесплатный урок HTML Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 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 — логический атрибут

Логические атрибуты либо присутствуют (true), либо отсутствуют (false) — значение не требуется:

<!-- 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

CSS display может переопределить атрибут 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 — визуально скрыт AND удалён из дерева доступности
  • 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:

  • Модальные диалоги до их открытия
  • Содержимое панелей вкладок (показывайте панель активной вкладки, остальные скрывайте)
  • Пошаговые мастера (показывайте текущий шаг)
  • Постепенное раскрытие содержимого (показывайте дополнительную информацию по нажатию)
  • Состояния загрузки (заменяйте индикатор загрузки содержимым)

Сохранение состояния 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» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «Атрибут hidden»?

Управляйте видимостью элемента с помощью логического атрибута hidden Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 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