Модальное окно на CSS3

3615
8.4 из 10
Проголосовало: 5






Для того, чтобы создать модальное окно на CSS3, не нужно каких-либо особых свойств и HTML тегов. Здесь делается все просто: мы на странице создаем обычный якорь, по нажатию которого появляется модальное окно.
Рассмотрим подробнее:

Code
<center><a href="#modalWindow" id="modalUrl">Открыть модальное окно, созданное на CSS3!</a> </center>
   
  <a href="#modal" class="overlay" id="modalWindow"></a>
  <div class="popup">

  Это модальное окно, созданное на CSS3! гуляю на webo4ka.ru<br>
  <br>
  <a class="close" href="#close">Закрыть</a>
  </div>


CSS

Сначала стоит оформить свойство overlay, которое изначально у нас не задействовано, а лишь срабатывает по открытию модального окна. Данное свойство изменяет фон сайта и делает его полностью прозрачным:

Code

.overlay {
  background-color: #DFDFDF; /* Цвет фона */
  opacity: 0; /* Изначально непрозрачный */
  position: fixed; /* Фиксированное позиционирование */
  right: 0; /* Справа 0 */
  top: 0; /* Сверху 0 */
  left: 0; /* Слева 0 */
  bottom: 0; /* Снизу 0 */
  visibility: hidden; /* Изначально невидимый */

  /* transition старт */
  -webkit-transition:All 1s ease;
  -moz-transition:All 1s ease;
  -o-transition:All 1s ease;
}


Теперь нужно сделать, чтобы при открытие модального окна изменился фон, то есть стал прозрачным, одного цвета. Для это необходимо применить псевдокласс :target:

Code

.overlay:target {
  visibility: visible; /* Делает видимым */
  opacity: 1; /* Фон становится полностью прозрачным */
}


Теперь стоит оформить сам вид модального окна:

Code

.popup {
  background-color: #478CFB; /* Фон */
  padding: 20px; /* Внутренние отступы */
  position: fixed; /* Фиксированное расположение */
  visibility: hidden; /* Изначально - спрятан */
  z-index: 10; /* z-index */
  color:#fff; /* Цвет */
  font: bold 12pt "Trebuchet MS", tahoma, verdana, arial narrow, arial; /* Толщина, размер и семейство шрифта */
}

.popup a {
  color:#fff; /* Цвет */
  font: bold 12pt "Trebuchet MS", tahoma, verdana, arial narrow, arial; /* Толщина, размер и семейство шрифта */
}


Теперь же, как сделать, что бы появилось модальное окно, а фон стал прозрачным и одного цвета? Здесь применяет тот же псевдокласс :target:

Code
.overlay:target+.popup {
  top: 30%; /* Расположение */
  left: 30%; /* Расположение */
  opacity: 1; /* Убирает прозрачность */
  visibility: visible; /* Делает видимым */
}


Вот и все. Как и оказалось, создать модальное окно на CSS3 - пустяк. Но, здесь есть одна серьезная проблема: это модальное окно не будет работать во многих старых браузерах, к примеру, в старых IE <9, а там без JS уже никуда.
Автор публикации: Загрузка
Загрузка
Вовчик, это его n материал
  • Всего комментариев: 1

Admin9185
0
Admin9185 написал: Написано 30 Октября 2012 в 19:23
Комментарий №1
[удалено, в в тексте мат]

  • Оставить комментарий:
Добавлять комментарии могут только зарегистрированные пользователи.
Регистрация | Вход
Меню сайта
Категории
Для помощи создания сайта uCoz 25
Скрипты и модификации для Ucoz 2118
Шаблоны форумов Ucoz 28
Шаблоны сайтов Ucoz 431
Авторство Webo4ki 309
php скрипты для ucoz 57
Графика для uCoz 40
Мини-чат
Последние комментарии
  • Marishka написал:
  • Можете добавить свои input поля, но сохраняйте их порядок в html для правильного сохранения и вывода.
  • Marishka написал:
  • Новая версия 1.3 (+6 новых станций):
    Установка:
    Демо: Перейти
  • Marishka написал:
  • Доп 8 станций:
    Код
    <div class="mSt"><p>Tropical</p><div data="2/trop_64">64</div><br><div data="2/trop_128">128</div><br><div data="2/trop_320">320</div></div>  
      <div class="mSt"><p>Нафталин FM</p><div data="2/naft_64">64</div><br><div data="2/naft_128">128</div><br><div data="2/naft_320">320</div></div>  
      <div class="mSt"><p>Rave FM</p><div data="2/rave_64">64</div><br><div data="2/rave_128">128</div><br><div data="2/rave_320">320</div></div>  
      <div class="mSt"><p>Gold</p><div data="2/gold_64">64</div><br><div data="2/gold_128">128</div><br><div data="2/gold_320">320</div></div>  
      <div class="mSt"><p>GOA/PSY</p><div data="2/goa_64">64</div><br><div data="2/goa_128">128</div><br><div data="2/goa_320">320</div></div>  
      <div class="mSt"><p>Minimal/Tech</p><div data="2/mini_64">64</div><br><div data="2/mini_128">128</div><br><div data="2/mini_320">320</div></div>  
      <div class="mSt"><p>House</p><div data="2/fut_64">64</div><br><div data="2/fut_128">128</div><br><div data="2/fut_320">320</div></div>  
      <div class="mSt"><p>Megamix</p><div data="2/mix_64">64</div><br><div data="2/mix_128">128</div><br><div data="2/mix_320">320</div></div>


    Fix работы радио:
    Находим: if(radUrl=="tm" || radUrl=="ps" || radUrl=="teo" || radUrl=="dc")
    Меняем на: if (radUrl == "tm" || radUrl == "ps" || radUrl == "teo" || radUrl == "dc" || radUrl == "gop")
  • CbIPoK2513 написал:
  • Мой вариант выдаёт аватарку картинкой, а не текстом.
  • waak написал:
  • и ещё забыл добавить что использую модуль каталог сайтов
    Последние темы
    Опрос
    258
    А
    Р
    Что произойдёт: $("#...
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0
    0
    Сегодня были
    Топ пользователей: