Модальные окна на CSS3
Сделаем модальное всплывающее окно на CSS3. Обычно для получения такого эффекта используется jQuery. Но CSS3 имеет все необходимые инструменты для реализации такого функционала. В демонстрации подготовлена одна страница с двумя всплывающими окнами: форма регистрации и форма входа.
Разметка HTML
Структура разметки достаточно проста. Имеется одна панель с кнопками и два всплывающих элемента. Каждый содержит перекрывающий слой в элементе div
и некоторое содержание с кнопкой для закрытия окна.
<html lang="ru" > <head> <meta charset="utf-8" /> <title>Модальное окно на CSS3 | Материалы сайта RUSELLER.COM</title> <link href="/css/layout.css" rel="stylesheet" type="text/css" /> <link href="/css/modal.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- Панель с кнопками --> <div class="main"> <div class="panel"> <a href="#login_form" id="login_pop">Войти</a> <a href="#join_form" id="join_pop">Регистрация</a> </div> </div> <!-- Форма №1 для модального окна --> <a href="#x" class="overlay" id="login_form"></a> <div class="popup"> <h2>Здравствуй, Гость!</h2> <p>Вводи свой псевдоним и пароль</p> <div> <label for="login">Псевдоним</label> <input type="text" id="login" value="" /> </div> <div> <label for="password">Пароль</label> <input type="password" id="password" value="" /> </div> <input type="button" value="Войти" /> <a class="close" href="#close"></a> </div> <!-- Форма №2 для модального окна --> <a href="#x" class="overlay" id="join_form"></a> <div class="popup"> <h2>Регистрация</h2> <p>Нужно о себе кое-что рассказать</p> <div> <label for="email">Псевдоним (email)</label> <input type="text" id="email" value="" /> </div> <div> <label for="pass">Пароль</label> <input type="password" id="pass" value="" /> </div> <div> <label for="firstname">Имя</label> <input type="text" id="firstname" value="" /> </div> <div> <label for="lastname">Фамилия</label> <input type="text" id="lastname" value="" /> </div> <input type="button" value="Регистрация" /> или <a href="#login_form" id="login_pop">Войти</a> <a class="close" href="#close"></a> </div> </body> </html>
CSS
А вот и стили для формирования модальных окон:
.main { background: #aaa url(../images/bg.jpg) no-repeat; width: 800px; height: 600px; margin: 50px auto; } .panel { background-color: #444; height: 34px; padding: 10px; } .panel a#login_pop, .panel a#join_pop { border: 2px solid #aaa; color: #fff; display: block; float: right; margin-right: 10px; padding: 5px 10px; text-decoration: none; text-shadow: 1px 1px #000; -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; } a#login_pop:hover, a#join_pop:hover { border-color: #eee; } .overlay { background-color: rgba(0, 0, 0, 0.6); bottom: 0; cursor: default; left: 0; opacity: 0; position: fixed; right: 0; top: 0; visibility: hidden; z-index: 1; -webkit-transition: opacity .5s; -moz-transition: opacity .5s; -ms-transition: opacity .5s; -o-transition: opacity .5s; transition: opacity .5s; } .overlay:target { visibility: visible; opacity: 1; } .popup { background-color: #fff; border: 3px solid #fff; display: inline-block; left: 50%; opacity: 0; padding: 15px; position: fixed; text-align: justify; top: 40%; visibility: hidden; z-index: 10; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; -webkit-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -moz-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -ms-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -o-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -webkit-transition: opacity .5s, top .5s; -moz-transition: opacity .5s, top .5s; -ms-transition: opacity .5s, top .5s; -o-transition: opacity .5s, top .5s; transition: opacity .5s, top .5s; } .overlay:target+.popup { top: 50%; opacity: 1; visibility: visible; } .close { background-color: rgba(0, 0, 0, 0.8); height: 30px; line-height: 30px; position: absolute; right: 0; text-align: center; text-decoration: none; top: -15px; width: 30px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -ms-border-radius: 15px; -o-border-radius: 15px; border-radius: 15px; } .close:before { color: rgba(255, 255, 255, 0.9); content: "X"; font-size: 24px; text-shadow: 0 -1px rgba(0, 0, 0, 0.9); } .close:hover { background-color: rgba(64, 128, 128, 0.8); } .popup p, .popup div { margin-bottom: 10px; } .popup label { display: inline-block; text-align: left; width: 120px; } .popup input[type="text"], .popup input[type="password"] { border: 1px solid; border-color: #999 #ccc #ccc; margin: 0; padding: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; } .popup input[type="text"]:hover, .popup input[type="password"]:hover { border-color: #555 #888 #888; }
Готово!
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/VKspgO_kjwA/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
На голодный желудок русский человек ничего делать и думать не хочет, а на сытый - не может Раневская Фаина Георгиевна - (1896-1984) - выдающаяся советская актриса театра и кино |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.