Модальное окно на css, как сделать модальное окно
Привет всем, расскажу об одной очень удобной штуке, которая называется модальное окно, мы разберем, как сделать модальное окно ? Многие не понимаю что это такое, я постараюсь объяснить на понятном для вас языке, другими словами — это всплывающее окно при нажатии на кнопку или текст.
Внутри этого окна, может быть любая информация (видео, картинка, код и т.д.) Я сейчас начал больше пользоваться модальным окном, как есть какой-то материал, который нужно допустим чтоб он не высвечивался на странице а допустим, была картинка, при нажатии на нее всплывало окно и информацией.
Я недавно делал такое на одном сайте, вставлял картинку на главной, даже не картинку а скриншот из видео ютуба, и при нажатии всплывает окно где показывает видео. Пример такого окна можно увидеть у меня на странице с игрой, вот ссылка, принцип такой же, жмешь на картинку всплывает окно с игрой. Сделал так по скольку расширение игры больше по ширине, чем у меня колонка для контента, вот такой выход из ситуации я нашел.
Еще один пример, где я вставил также в окно, код баннера и сам баннер, на странице партнерской программы.
Рассмотрим модальное окно на css, чтоб не морочить голову, будем использовать стили, то-есть прописывает стили в основном файле и код в наше окно, рассмотрим все в подробностях, что и как.
Модальное окно на css, как сделать модальное окно
Первое что нам нужно это стили, копируем полностью код со стилями, который ниже и вставляем его в ваш основной файл стилей, то-есть в style.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | .Window { position: fixed; font-family: Arial, Helvetica, sans-serif; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,0.7); z-index: 99999; -webkit-transition: opacity 400ms ease-in; -moz-transition: opacity 400ms ease-in; transition: opacity 400ms ease-in; display: none; pointer-events: none; } .Window:target { display: block; pointer-events: auto; } .Window > div { width: 460px; position: relative; margin: 10% auto; padding: 30px 10px 10px; border-radius: 10px; background: #fff; box-shadow: 0px 0px 20px 2px; } .close { background: #cc3300; 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: #990000; } |
Сохраняем, можно поиграться со стилями, и что-то сделать красивее, поменять фон, рамку другую сделать и так дальше. Переходим на страницу где вы хотите чтоб у вас всплывало данное окно, и вставьте следующий код:
1 2 3 4 5 6 7 | <a href="#ModalOpen" title="">Кнопка</a> <div id="ModalOpen" class="Window"> <div> <a href="#close" title="Закрыть" class="close">X</a> Здесь будет содержимое окна </div> </div> |
Теперь немного разберем что в нем, нужно вам поменять. Где прописано «Кнопка» там вы можете вставить, как картинку таи текст, вообще что хотите, то-есть при нажатии на её, будет открываться окно. Там где прописано «Здесь будет содержимое окна» вставьте то что вы бы хотели видеть в всплывающем окне, вот в принципе и все.
Пользуйтесь с удовольствием, рекомендую ! Кто знает еще какие-то методы чтоб проще все это было, пишите в комментария, если что, до пишем статью.
НОВОСТИ !
Ну и на по следок новость как всегда, что-то я зачастил с новостями уже )) Сделал себе небольшую страничку с партнерской программой, в виде одностраничного сайта, порошу всех перейти на нее и посмотреть, может кто-то даст еще какие-то советы интересные, например что-то дополнить, ну вы понимаете о чем я говорю. Еще есть некоторые мысли по ней, чтоб добавить видео со мной, может инструкцию, ну что-то в этом роде, Вообщем жду от вас комментарий !
С уважением Евгений Смецкий
29 комментариев
Я думал оно называется «модальное»
Спасибо что увидел ) писал поздно, а оно видно исправляло мне.
Пирешел на твоё страничку. Всё хорошо, только не мешало бы немного поднять выше вот этот текс «Бесплатно Комисионные 0%» «Цена 3850 руб.Комисионные 50%» и кнопку «Рекомендовать». В опере вообще плохо отображается в других браузерах лучше, надо немного поднять.
Ок спасибо, проверим !
А я когда перешел то почему то не было изображений на странице, или ты вел над ним еще работу, было это сразу после публикации этой статьи
Нет, он работает 😀
А это не тоже самое как спойлер?
Похоже, но вроде нет!
Я думал, что спойлер это совсем другое.
Это такой как бы эффект что ли. Если вы использовали плагин для увеличения изображений в статьях то он делает что то подобное. Так же примерно вид
Евгений, мне почему то на почту пришло письмо с твоей рассылке только со старой статей еще за октябрь
интересно ) А что пришло ?
Если честно никогда о таких случаях не слышал.
Пару раз такое было(
Честно говоря думал, что сделать модальные окна куда сложнее. Спасибо за материал.
Юрий это если бы Вы читали про это окно на другом блоге, то возможно у Вас такое представление и осталось. А Евгений пишет всё кратко и понятно.
Здравствуй, Евгений, мне кажется, что лучше всетаки такие вещи делать на Jquery. В опере вобще просто коричневый квадрат всплывает и все.
Не знаю, почему у вас квадрат, я проверял в каждом браузере, везде все хорошо.
Реализовал окно под опрос, а оно не прокручивается 😥
Если длинное то да)) Но там же можно выставить ширину и высоту !
Добрый день Евгений!
Пример очень понравился своей простотой и качеством. Но есть вопрос.
На странице есть несколько изображений для их последующего увеличения в модальном окне.
Видимые небольшие изображения (на которые нужно нажать) помещены в область:
a href=" #ModalOpen" title="« rel=»nofollow">ИЗОБРАЖЕНИЕ небольшое 1
А большое изображение, которое должно появиться в модельном окне размещено в этом блоке:
a href=" #close" title="Закрыть" rel="nofollow">X
БОЛЬШОЕ ИЗОБРАЖЕНИЕ 1
Эта часть работает отлично! БОЛЬШОЕ ИЗОБРАЖЕНИЕ 1 (далее- БИ №1) отображается в модальном блоке идеально!
Но все последующие изображения на страничке, при клике, отображают в модальном окне вновь БИ №1, вместо указанных для отображений БИ №2, БИ №3 и т.д.
«Маленькие Изображения» отображаются как нужно — все разные.
Вопрос к Вам Евгений, можно ли это как то исправить, возможно я где то недосмотрел и делаю ошибку. В целом можно ли на данном примере сделать на странице 10-20 изображений, которые бы отображались в модальном окне на Вашем примере?
Буду очень признателен за ответ!
А зачем вы хотите использовать модальное окно для просмотра нескольких изображений? Можно использовать какой то плагин, для увеличения изображений, чем все время заниматься вставкой изображений
В моем случае каждое изображение это сборочный чертеж изделия. Таких изделий на странице будет около 30.
Разобрался, необходимо каждому окну присваивать свой ID, т.е.:
если: a href="#ModalOpen"
то: div id="ModalOpen"
далее:
если: a href="#ModalOpen1"
то: div id="ModalOpen1"
и т.п.
Получилось просто бомба!
Ну здорово 🙂
У меня несколько изображений — их я сделала кнопками. При нажатии на изображение должно открываться модульное окно с нужной информацией (для каждой кнопки своя информация). Как сделать, чтобы в каждом окне открывалась разная информация? Пока что для разных изображений в окне открывается один и тот же текст.
модАльное окно ( 😀 )
Да, именно модАльное !
Елена, посмотрите мой предыдущий ответ на мой же вопрос («Вадим Ответ:
Май 4th, 2015 at 11:44»), я думаю он Вам должен помочь.
для аппаратного ускорения. Чтобы сделать появление окна более реалистичным тени также анимируются, что создает нагрузку на производительность.