Справочник HTML
Тег <dialog>: нативное модальное окно
<dialog> создаёт нативное диалоговое окно. Метод showModal() открывает его поверх страницы и помещает остальной документ в недоступный для взаимодействия фон.
Рабочий пример
<button id="open">Удалить файл</button>
<dialog id="confirm">
<h2>Удалить файл?</h2>
<p>Это действие нельзя отменить.</p>
<form method="dialog">
<button value="cancel">Отмена</button>
<button value="confirm">Удалить</button>
</form>
</dialog>Форма с method="dialog" закрывает окно после выбора кнопки, а значение доступно через returnValue. Псевдоэлемент ::backdrop оформляет затемнение позади модального окна.
Когда применять
Открывай диалог только после явного действия. Заголовок должен объяснять цель, а кнопки — последствия. Для обычного раскрывающегося текста лучше использовать details, а не модальное окно.
Проверь пример самостоятельно: измени исходные данные, убери одну строку и сравни результат. Такой короткий эксперимент помогает увидеть роль каждого свойства или метода и не превращает обучение в механическое копирование.
Частые ошибки
- Открывать dialog через атрибут open вместо showModal и терять модальность
- Не давать заметную кнопку закрытия
- Помещать в окно слишком длинный сценарий
Задание
Сделай подтверждение удаления и после закрытия выведи выбранное пользователем действие.
Проверка: результат должен работать с клавиатуры, не создавать ошибок в консоли и оставаться понятным без пояснений автора.
Практикум по теме
- Окно поверх страницы на теге dialog — Подтверждение «удалить запись» не обязано быть отдельной страницей.