Главная
Web-дизайн
Простое модальное окно с помощью css (Pop-up)

Простое модальное окно с помощью css (Pop-up)

Доброго времени суток!
Сегодня хочу рассказать о том как сделать модальное окно или Pop-up окно на своем сайте. Данное модальное окно очень простое и для его создания не надо JavaScript или Jquery с его библиотеками, нужно лишь использование css, ну и немного html 🙂 В статье о скрипте который отправляет ссылку я уже представлял это окно, но хочу сделать отдельную статью для него.
И так приступим.
Для начала нужно вывести ссылку, при нажатии на которую будет открываться наше окно. Чтобы осуществить это - нужно вставить в нужное место вашего сайта следующий код:

<a href="#openModal2" class="info">Нажми</a>
<div id="openModal2" class="modalDialog">
   <div>
      <a href="#close" title="Close" class="close1">X</a>
	  Сюда код или текст
   </div>
</div>

первая строка - это ссылка, при нажатии на которую будет открываться модальное окно.
Со второй строки начинается код самого окна. В четвертой строке ссылка - это кнопка закрытия окна. Сейчас это простой икс "Х" можете подключить картинку в виде крестика или написать словом - закрыть. С пятой строки - можете вставлять свой код или текст.
Для того чтобы окно отображалось корректно, нужно прописать CSS стили.

/*Оформление*/
.modalDialog {
 position: fixed;
 font-family: Arial, Helvetica, sans-serif;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 background: rgba(0,0,0,0.8);
 z-index: 99999;
 -webkit-transition: opacity 400ms ease-in;
 -moz-transition: opacity 400ms ease-in;
 transition: opacity 400ms ease-in;
 display: none;
}
/*Открытие*/
.modalDialog:target {
 display: block;
 pointer-events: auto;
}

.modalDialog > div {
 width: 400px;
 position: relative;
 margin: 15% auto;
 padding: 5px 20px 13px 20px;
 border-radius: 10px;
 background: #fff;
 background: #333333;
  border: 2px solid #ff3333;
}
/*Закрытие окна*/
.close1 {
 background: #606061;
 color: #FFFFFF;
 line-height: 25px;
 position: absolute;
 right: -12px;
 text-align: center;
 top: -10px;
 width: 24px;
 text-decoration: none;
 font-weight: bold;
 -webkit-border-radius: 12px;
 -moz-border-radius: 12px;
 border-radius: 12px;
 -moz-box-shadow: 1px 1px 3px #000;
 -webkit-box-shadow: 1px 1px 3px #000;
 box-shadow: 1px 1px 3px #000;
}

.close:hover { background: #ff9933; }   
#send_info{color:#ffffff;font-size: 16px;}

Можете изменить стили и подогнать их под себя, чтобы окно выглядело так как вы хотите.
На этом все. Спасибо за внимание 🙂




Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(8 голосов, в среднем: 4.5 из 5)

Опубликовано 4 комментария

  • Владимир
    Комментариев: 1

    Классный метод, спасибо! Пробовал выводить в окне видео с ютуба, всё выводится, но есть одна проблема, если видео не поставить на пауз, то оно дальше будет идти, даже при закрытом модальном окне.

    • Виталий
      Комментариев: 269

      Данный метод просто делает видимым или нет блок. Поэтому видео продолжает проигрываться. Чтобы его останавливать при закрытии понадобится использовать Jquery и с помощью него производить как бы удаление видео, тоесть оно перестанет воспроизводится, а при открытии его вновь подключать. Удаляется при помощи функции - remove() А добавить - append()
      Также есть идея, чтобы путь в src менять на пустоту. То есть написать функцию, которая при закрытии окна удаляла путь к видео, в результате то переставало бы воспроизводится.
      Вот тут простейший пример окна с видео https://jsfiddle.net/o0xusd7h/

  • lomaster
    Комментариев: 2

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

    • Виталий
      Комментариев: 269

      Для решения первого вопроса - попробуйте, добавить событие ссылке - onclick="return false;"
      получится так -
      <a href="#openModal2" class="info" onclick="return false;">Нажми</a>
      Должно сработать.
      Кстати можно добавить и крестику закрытия

Добавить комментарий

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий