Здравствуйте уважаемые вебмастера.
Хочу показать вариант модального окна сделанного без скриптов и внешних библиотек.
А так же два немодальных окна, которые можно использовать для размещения информации.
Так как языки html и csss активно развиваются, появляются новые теги и свойства, то и возможности их возрастают.
Правда не всё пока получается так как хочется, поэтому в отношении некоторых случаев, буду очень благодарен за уточнения.
Вот, например, в первом примере мне так и не удалось спрятать кнопку "Закрыть", после закрытия модального окна.
Пример 1.
Окно появляется только при заходе на страницу. После закрытия больше не появляется даже при обновлении.
Окно адаптивное и спозиционировано по центру экрана.
HTML
<a href="#open" title="Закрыть" class="alles">x</a> <!--Кнопка Закрыть. Якорная ссылка--> <div id="open" class="tele"> <hr style="margin-top: 23px;"> <div class="modal"> Контент внутри окна </div> </div>
CSS
/* Затемнение экрана */ .tele { position: fixed; top: 0; /* Растягиваем по краям экрана */ right: 0; bottom: 0; left: 0; background: rgba(0,0,0,0.2); /* Затемнение */ z-index: 99999; /* Поверх всех слоёв */ pointer-events: none; /* Запрет мыши */ display: block; animation: main-titl 3s linear; /* Плавное появление */ } /* Применяем к идентификатору */ .tele:target { display: none; pointer-events: auto; /* Восстанавливаем мышь */ } /* Окно */ .modal{ width: 25%; position: fixed; top: 30%; left: 30%; right: 30%; padding: 10px; pointer-events: auto; /* Восстанавливаем доступ к ссылкам */ text-align: center; line-height: 25px; border-radius: 3px; background: #fff; box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.4), -1px 0 2px rgba(0, 0, 0, 0.4); } /* Кнопка Закрыть */ .alles { position: absolute; top: 5px; right: 5px; width: 30px; background: #FFF; color: #888; line-height: 18px; text-align: center; text-decoration: none; font-family: Arial; border: 2px colid #FF5037; border-radius: 2px; animation: main-close 3s linear; /* Кнопка появляется вместе с затемнением */ } .alles:hover { background: #FF5037; } .alles:active { background: rgba(0, 0, 0, 0.01); } .alles:visited { background: #fff; } @keyframes main-titl { 0% { transform: translateY(6em); opacity: 0; } 95% { opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes main-close { 0% { transform: translateY(6em); opacity: 0; } 95% { opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
Пример 2.
Второе окно проще первого. Его функция - напомнить или предупредить посетителя о чём нибудь.
Окно появляется через определённые промежутки времени на несколько секунд и опять исчезает.
HTML
<div class="reminder"> Это второй пример Окно для напоминаний </div>
CSS
.reminder { position: fixed; top: 25px; right: 20px; width: 200px; padding: 10px; border: 1px solid #999; text-align: center; font-size: 20px; font-style: italic; color: rgb(95, 123, 111); background: radial-gradient(#fff 70%, rgba(0, 0, 0, 0.07)); border-radius: 5px; box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.4), -1px 0 2px rgba(0, 0, 0, 0.4); opacity: 0; animation: nev 25s infinite; } @keyframes nev { 0% { opacity: 0; } 70% { opacity: 0; } 80% { opacity: 1; } 95% { opacity: 1; } 100% { opacity: 0; } }
Пример 3
Это окно можно назвать окном с подсказкой или дополнительной информацией.
Опция очень удобна тем, что в любом месте контента можно вставить вот такую кнопочку ?, и при наведении на неё курсора, откроется окно с подсказкой.
Код очень простой, даже комментировать нечего.
HTML
<span class="quest">?<span class="hint">Текст подсказки</span></span>
CSS
.quest { text-align: center; font-weight: bold; font-size: 18px; padding: 0 5px; color: #800000; cursor: pointer; border: 1px solid #888; border-radius: 2px; position: relative; } .hint { position: absolute; top: -110px; left: 40px; width: 100px; padding: 30px; display: none; text-align: center; font-weight: normal; font-size: 16px; color: #666; background: #fff; border-radius: 3px; box-shadow:inset 0 0 2px 1px #888; } .quest:hover { background: #FFA07A; } .quest:hover .hint { display: block; }
Желаю творческих успехов!