Веб-версияОткрыть в Telegram

Постinert — отключение целой области интерфейса без обхода дочерних элементов!

22 сентября 2026
C
Code Ready | Frontend
inert — отключение целой области интерфейса без обхода дочерних элементов! Иногда часть интерфейса требуется временно исключить из взаимодействия: например, при открытии выдвижной панели или на время операции, когда фоновый интерфейс не должен принимать пользовательский ввод. Управлять состоянием каждого элемента отдельно можно, но такой подход требует учитывать разные типы элементов и механизмы взаимодействия: button.disabled = true; input.disabled = true; link.tabIndex = -1; disabled применим не ко всем HTML-элементам, а изменение tabindex решает только задачу фокуса. Для блокировки целой области документа существует глобальный атрибут inert: <main id="content"> <button>Сохранить</button> <a href="/profile">Профиль</a> <input type="text"> </main> Состоянием можно управлять через HTMLElement.inert, без поиска и изменения каждого интерактивного элемента внутри контейнера: const content = document.querySelector('#content'); content.inert = true; После установки inert контейнер и его потомки в плоском дереве (flat tree) не могут получать фокус. Это относится и к программному вызову focus(): content.inert = true; document.querySelector('#content input').focus(); Пользовательская активация также блокируется: клик пользователя по кнопке внутри inert-области не приводит к click на этой кнопке. Программный element.click() при этом следует рассматривать отдельно: const button = document.querySelector('#content button'); button.addEventListener('click', () => { console.log('click'); }); content.inert = true; В отличие от inert, pointer-events: none влияет на определение элемента под указателем, но сам по себе не исключает элементы из последовательной навигации с клавиатуры: .content { pointer-events: none; } inert действует шире: элементы не получают фокус, пользовательское взаимодействие блокируется, а содержимое исключается из дерева доступности. Например, основной интерфейс можно деактивировать при открытии выдвижной панели, расположенной вне inert-контейнера: <main id="content"> <!-- основной интерфейс --> </main> <aside id="drawer" hidden> <!-- выдвижная панель --> </aside> Состояние всего фонового интерфейса переключается одной операцией независимо от количества элементов внутри main: function openDrawer() { content.inert = true; drawer.hidden = false; } function closeDrawer() { content.inert = false; drawer.hidden = true; } Для модальных интерфейсов есть <dialog>. Вызов showModal() помещает диалог в верхний слой (top layer), а остальную часть документа браузер делает inert автоматически: const dialog = document.querySelector('dialog'); dialog.showModal(); Сам inert не задаёт визуальное состояние заблокированной области. При необходимости оно оформляется отдельно через CSS: [inert] { opacity: 0.6; } 🔥 inert позволяет исключить целую область документа из взаимодействия без ручного управления disabled, tabindex и состоянием каждого вложенного элемента. 📣 Code Ready | #практика
34 · 1.4K ·

Рядом в ленте

CCode Ready | Frontend🔴AI кодинг интервью с разработчиком из международного FinTech в четверг в 19:00 ДА! Вайбкодинг реально начали проверять на интервью, поэтому мы нашли собеседующCCode Ready | Frontend13 12
это сообщение
CCode Ready | Frontend👩‍💻 Тег для перевода данных с человеческого языка на компьютерный! Тег <data> позволяет показать пользователю обычный текст и одновременно связать его с другим CCode Ready | Frontend👩‍💻 Можно ли изменить стиль поля, которое браузер заполнил автоматически? :autofill — псевдокласс, который находит поля формы, куда браузер сам подставил сохран
CCode Ready | FrontendCode Ready | Frontend@code_ready · канал · Технологии
21 638подписчиков1 503средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем