Модальное окно с использованием только CSS

demo

C помощью CSS3 модальное окно можно создать без использования JavaScript и изображений. Задействовав немного анимации, преобразований и переходов окну можно придать очень интересный вид.

В данном уроке мы создадим модальное окно, которое будет открываться при нажатии на кнопку. В браузерах, которые поддерживают анимацию, будет использоваться отличный эффект для появления окна. Когда модальное окно будет открытым, все другие элементы на странице будут недоступны. Закрытие модального окна также сопровождается анимацией. В уроке используется тег <aside>. но вы можете использовать <nav> или <details> в зависимости от необходимости.

Конечно же, использование изображений и JavaScript делает модальные окна только лучше. Кроме того, закрытие окна по нажатию клавиши ESC нельзя сделать через CSS. Так что чисто решение на CSS достаточно редко используется в реальных проектах. Однако знание о таких возможностях существенно влияет на квалификацию разработчика, и, кроме того, веб технологии постоянно развиваются.

Как работает?

Псевдо селектор :tar­get изменяет стиль целевого элемента. Комбинирование указание ссылкой на элемент с. tar­get и изменением видимости/прозрачности дает в итоге механизм для вывода/скрытия окна. Для улучшения анимации, которая становится дерганной при использовании display:none. сочетаются. tar­get. opacity и pointer-events:

Модальное окно имеет две части: контейнер и содержание. В идеале, контейнер должен генерироваться с помощью псевдо элемента, но на момент написания урока данный метод не работает. Контейнер растягивается на всю страницу и притеняет фон с

использованием rgba. Большое значение свойства z-index размещает модальное окно поверх страницы.

Содержание позиционируется посередине и "приглаживается" тенями, скругленными углами и градиентом.

Есть две анимации. Одна называется “bounce” ("прыжок" - происходит масштабирование до немного большего размера, затем возвращается все к норме). Другая называется “min­imise”, и она действует в обратном направлении. Для них используется комбинация трансформаций прозрачности контейнера.

Простая трансформация прозрачности:

Анимация масштабирования, хотя и выполняется в 2D, использует scale3d для аппаратного ускорения. Чтобы сделать появление окна более реалистичным тени также анимируются, что создает нагрузку на производительность.

Для изменения анимации при открытии мы используем каскад и переписываем анимацию по умолчанию с использованием. tar­get :

Кнопка Закрыть является скрытой ссылкой со стилизованным псевдо-элементом. avto. который масштабируется при наведении курсора мыши. Так как мы скрываем оригинальную ссылку, то нужно сделать "прыжок" через изменение состояния псевдо-элемента. focus. Методы традиционная обрезка, выравнивания текста и скрытия видимости не работают, поэтому используются color:transparent и несколько специфических стилей для :focus .

Предупреждения

Данный метод не работает в IE8 и старше, где нет поддержки pointer-event и плохо реализована поддержка прозрачности. IE9 поддерживает. tar­get. но не pointer-event .

Пользователи могут воспользоваться клавишей TAB для переключения по ссылкам под затеняющим слоем и активировать их. Единственное решение - игнорировать состояние :focus.

Источник: ruseller.com

Категория: Электронная почта

Похожие статьи: