Всем привет!
Ох, и не на шутку я разошелся по теме всплывающих модальных окон.
Почему для меня эта тема так актуальна? Потому, что в последнее время очень часто заказчики хотят, чтобы на их сайтах выплывало окно с формой подписки, обратной связи или же с формой заказать звонок.
И я с большим удовольствием делюсь с вами, читатели блога BlogGood.ru, готовым решением, как сделать красивое, всплывающие модальное окно.
Кстати, в коде не используется JavaScript, jQuery, а только чистый HTML и CSS.
Итак, вставьте вот этот HTML-код перед </body>:
<!-- кнопка вызова popup --> <a href="#login_form" id="login_pop">Открыть окно</a> <!-- popup форма --> <a href="#x" class="overlay" id="login_form"></a> <div class="popup"> Здесь текст, форма и т.д. <a class="close" href="#close"></a> </div>
Теперь CSS:
.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); }
Посмотрите демонстрацию. Я применил всплывающее модальное окно для входа в админку сайта.
Готовый код:
<html> <head> <title>модальное окно</title> <meta charset="utf-8"> <style> .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[ENGINE="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; } </style> </head> <body> <!-- кнопка вызова popup --> <a href="#login_form" id="login_pop">Войти</a> <!-- popup форма --> <a href="#x" class="overlay" id="login_form"></a> <div class="popup"> <h2>Вход в АДМИН</h2> Введите ваш логин и пароль <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> </body> </html>
Вот и все! Пользуйтесь на здоровье ! Мне не жалко!
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 марта 2013
Прокомментировано:90
просмотров: 330330 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 274683 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 222437 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 187487 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 186559
13 Ответов на комментарий - Всплывающее модальное окно для сайта
Добавить комментарий
Метки: css, Вебмастеру, для сайта, эффекты для сайта
Как всегда всё написано понятно, спасибо за информацию !
Здравствуйте, Степан. Ваш блог для меня большая находка. Толковые объяснения человека знающего, при этом понятные даже новичку.
Очень помогают ваши заготовки. Я стараюсь не просто копировать код, а разбираться, что к чему. Спасибо большое.
Хочу спросить, раз вы уж так разошлись по модальным окнам. Как все таки сделать, чтобы присутствовало несколько кнопок, каждая была привязана к своему содержимому в окне, при этом вызов шел через одну функцию. В прошлый раз вы написали, что нужно каждому окну присваивать свой id и для каждого заново прописывать стили,но как тогда быть со скриптом, чтобы он мог вызывать не одно окно? И такое повторение стилей занимает много места. Неужели никак нельзя сократить и обобщить код. Сама я что-то пыталась сделать, полагаясь на логику и интуицию
ведь знаний еще очень-очень мало. Естественно, ничего не получилось 
Степан подскажите, а если я из формы захочу достать имя (логин) посетителя, который он сам ввел в этой форме:
Логин
Пароль
Доставать через $_POST[‘id’] или как?
Родион, дайте код формы и я вам скажу точно.
Дам достаточно переменную вывести, например:
в php вот так:
все будет работать.
echo $name; – это вывод переменной. Другими словами, то что вводит пользователь в логин
И Вам, Александр, спасибо за то, что читаете мой блог!
Просто вы там вместо “name” – “id” поставили, меня
ЭтО сбило с толку.
Родион, там все верно. Я вместо “name” не ставил “id”. Просто к этой форме нужно дописать “name” с именем к полю, чтобы обработчик PHP обработал форму.
Здравствуйте, Елена. Спасибо, что Вы являетесь постоянным читателем. Вы правильно делаете, что стараетесь не просто скопировать код, а разобраться нем.
Если вас интересует это всплывающее окно, можно сделать так:
Меняете только “login_form”. Все CSS остаются такие же без изменения и дополнения.
Спасибо вам за труд
Еще меня интересовало другое модальное окно, но с ним я уже разобралась самостоятельно.
Пожалуйста, Елена!
Скажите, Степан как сделать модальное окно (поплавок) слева внизу. Поплавок “сделавших заказ”. В поплавке город, имя заказчика и сумма заказа (она все время меняется), поплавок всплывает каждые 20 секунд?
Поплавок выглядит вот так https://yadi.sk/i/MHBaTOvq32uEi7
Нужно в прописать в CSS
float: left;