Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про HTML: dialog, modal

Как работает элемент <dialog> и API для управления модальными окнами? Какие особенности его использования?

Этот вопрос проверяет понимание работы элемента <dialog>, который используется для создания модальных окон, а также API, позволяющего контролировать его поведение. Важно знать, как элемент используется и как он облегчает создание модалок.

Короткий ответ

Элемент <dialog> позволяет создавать встроенные модальные окна на веб-странице без необходимости использования сторонних библиотек. У него есть методы .showModal() для отображения окна в модальном режиме и .close() для его закрытия. Одной из особенностей является встроенная поддержка модальности и блокировки фокуса на элементах внутри диалога, что делает его удобным для создания интерактивных всплывающих окон. Он также поддерживает атрибуты для настройки внешнего вида и поведения.

 

Длинный ответ

Элемент <dialog> появился в HTML5 и предназначен для создания модальных или немодальных диалогов, таких как всплывающие окна. Его ключевая задача — отображать окно поверх основного контента, при этом управляя фокусом пользователя.

Основные методы и атрибуты элемента:

Метод .showModal(): Открывает модальное окно, блокируя взаимодействие с остальными элементами страницы до его закрытия.

<dialog id="myDialog">This is a modal dialog</dialog> 

<script> document.getElementById('myDialog').showModal();</script>

Окно становится модальным, и пользователь не сможет взаимодействовать с элементами страницы вне диалога.

Метод .close(): Закрывает диалоговое окно.

document.getElementById('myDialog').close();

Атрибут open: Если указан, делает диалог видимым без модальности (немодальный режим).

<dialog open>This is an open dialog</dialog>

Особенности использования:

  • Фокусировка: Когда диалог открыт в модальном режиме, фокус остаётся внутри него, что улучшает доступность (a11y) и делает взаимодействие с интерфейсом более предсказуемым для пользователей.

  • Закрытие по умолчанию: Если пользователю нужно закрыть диалог по нажатию на клавишу "Esc" или при клике вне окна, это поведение можно обработать через события.

Примеры использования:

<dialog id="myDialog">  
	<p>Example of dialog content.</p>  
	<button onclick="this.closest('dialog').close()">Close</button> 
</dialog> 
<button onclick="document.getElementById('myDialog').showModal()">Open Dialog</button>

Элемент <dialog> позволяет упрощать разработку модальных окон и улучшать их доступность, а также поддерживает модальное поведение без использования сложных библиотек.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • HTML

    HTML

Ключевые слова

#dialog

#modal

Подпишись на React Developer в телеграм