Как сделать всплывающее окно в html
5 лет назад
Человек-Молекула
Ответы
Для создания всплывающего окна в HTML можно использовать тег <div> и стили CSS.
- Сначала создадим блок
<div>, который будет содержать всплывающее окно:
- Добавим стили для этого блока. С помощью CSS зададим ему размеры, позицию, цвет фона и прозрачность:
- Добавим кнопку, при нажатии на которую будет открываться всплывающее окно:
- Создадим функцию
openPopup(), которая будет открывать всплывающее окно. В этой функции мы будем получать доступ к блоку<div>и задавать ему свойствоdisplay: block;, чтобы он стал видимым:
- Для того чтобы закрыть всплывающее окно, добавим кнопку "закрыть" и функцию
closePopup(), которая будет скрывать блок<div>:
4 года назад
Aleksey
Всплывающее окно проще всего сделать тегом <dialog>. Браузер сам рисует затемнение, закрывает окно по Esc и держит фокус внутри:
showModal() открывает окно поверх страницы. Кнопка внутри <form method="dialog"> закрывает его без JavaScript.
Оформление
::backdrop — фон под окном.
Закрытие по клику на фон
Чтобы клик по самому окну не закрывал его, обёрните содержимое в <div> с отступами, а padding у dialog уберите.
Всплывающая подсказка
Для маленькой подсказки рядом с элементом подойдёт атрибут popover:
Окно откроется по клику без JavaScript и закроется по клику вне его.
Без <dialog>: div и CSS
Если нужно поддерживать очень старые браузеры, окно делают из div с position: fixed на весь экран и переключают класс. Тогда закрытие по Esc и удержание фокуса придётся писать самому.
Окно браузера alert
alert('Сохранено') и confirm('Удалить?') показывают системное окно. Его нельзя оформить, и оно блокирует страницу. Подходит для отладки, в интерфейсе используйте <dialog>.
Формы и интерактивные элементы разбирают в бесплатном курсе «Введение в HTML и CSS».
7 дней назад
Никита Вихров






