наверх





Модальное окно - это такое окно, которое появляется после нажатия определенной кнопки / ссылки на странице. Обычно их создают с помощью применения JS, но с появления CSS3 появилась возможность создания модального окна без JS!


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

Рассмотрим подробнее:

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

        Это модальное окно, созданное на CSS3! <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 уже никуда.




Просмотр демо-варианта


Поделиться
Border-radius генератор
Занимаетесь веб-разработкой? Кроссбраузерный border-radius генератор с поддержкой выборочных скруглений краев.


Комментарии — 0


У вас нет прав для добавления комментария. Зарегистрируйтесь или авторизуйтесь.