Для того, чтобы создать модальное окно на CSS3, не нужно каких-либо особых свойств и HTML тегов. Здесь делается все просто: мы на странице создаем обычный якорь, по нажатию которого появляется модальное окно.
Рассмотрим подробнее:
Код
<center><a href="#modalWindow" id="modalUrl">Открыть модальное окно, созданное на CSS3!</a> </center>
<a href="#modal" class="overlay" id="modalWindow"></a>
<div class="popup">
Это модальное окно<br>
<br>
<a class="close" href="#close">Закрыть</a>
</div>
CSS
Сначала стоит оформить свойство overlay, которое изначально у нас не задействовано, а лишь срабатывает по открытию модального окна. Данное свойство изменяет фон сайта и делает его полностью прозрачным:
Код
.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:
Код
.overlay:target {
visibility: visible; /* Делает видимым */
opacity: 1; /* Фон становится полностью прозрачным */
}
Теперь стоит оформить сам вид модального окна:
Код
.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:
Код
.overlay:target+.popup {
top: 30%; /* Расположение */
left: 30%; /* Расположение */
opacity: 1; /* Убирает прозрачность */
visibility: visible; /* Делает видимым */
}
Вот и все. Как и оказалось, создать модальное окно на CSS3 - пустяк. Но, здесь есть одна серьезная проблема: это модальное окно не будет работать во многих старых браузерах, к примеру, в старых IE <9, а там без JS уже никуда.