Xwab
Форумыnavigate_nextHTML/CSS

Всплывающее окно HTML + CSS
Сообщения
Pisatel

Всем здравствуйте. Хочу поделиться с Вами простейшим, на мой взгляд, способом добавить на Ваш сайт всплывающее окно подсказки. Возможно, пригодится кому.
Ранее для этого я пользовался jquery, картинкой и целой кучей кода. Немного погуглив, я нашел более простой и удобный способ. Итак, начали.
Сам html:
<a onmouseover='this.style.cursor="pointer" ' onfocus='this.blur();' onclick="document.getElementById('okno').style.display='block'"><span>Подсказка</span></a>
<br />
<div id='okno' style='display: none;'>Здесь будет текст Вашего всплывающего окна<div style='text-align: right;'><a onmouseover='this.style.cursor="pointer" ' style='font-size: 12px;' onfocus='this.blur();' onclick="document.getElementById('okno').style.display = 'none' ">Закрыть</a></div></div>

Думаю, особо комментировать здесь нечего: создаем ссылку, задаем вид курсора при наведении в виде стрелки. Далее- сам CSS. Я немного изменил его, добавил градиент (плавный переход цвета), закруглил углы, добавил небольшой эффект, который придает симпатяшности нашему окну. Итак, сам код и небольшие комментарии.
CSS:

#okno {
display: none; /*закрываем от показа при загрузке страницы*/
position: absolute;
left: 30px; /*смещаем вправо*/
top: -30px; /*вверх*/
z-index: 1; /*возвышаем над другими элементами, на всякий случай*/
border: 1px solid #FFAE00;
border-radius: 12px; /*округляем*/
padding: 10px;
background-color: #ff5a00;
background-image: linear-gradient(top, #ff5a00, #FFAE00); /*градиент (плавный переход цвета) сверху- вниз*/
background-image: -webkit-linear-gradient(top, #ff5a00, #FFAE00);
background-image: -moz-linear-gradient(top, #ff5a00, #FFAE00);
background-image: -o-linear-gradient(top, #ff5a00, #FFAE00);
background-image: -ms-linear-gradient(top, #ff5a00, #FFAE00); /*на всякий случай для каждого арбузера*/
text-align: justify;
font-size: 12px;
font-style: italic;
font-weight: bold;
text-shadow: 1px 0 0 #000; /*тень шрифта*/
width: 420px;
}
/*делаем симпатичный указатель*/
#okno:after {
content: '';
position: absolute;
width: 0;
height: 0;
z-index: 1;
border: 15px solid transparent; /*делаем квадрат прозрачным. Без transparent квадрат будет белым*/
border-top-color: #FFAE00; /*красим верхний треугольник квадрата*/
top: 100%;
left: 10%; /*располагаем со смещением вправо на 10%. Если поставите 50%, то будет посередине*/
margin-left: -15px;
}
Как видите, в общем, ничего сложного. Если Вы хотите, чтобы окно открывалось не по клику, а по наведению курсора, то просто меняем первую строчку на это:
<a onmouseover="document.getElementById('okno').style.display = 'block' " onmouseout="document.getElementById('okno').style.display = 'none' " onfocus='this.blur();'><span style="text-decoration:underline;">Подсказка</span></a>
На этом все. Надеюсь, кому-нибудь пригодится. На скриншоте результат с оперы мобайл. Кроссбраузерность: как всегда, старые IE нуждаются в фильтрах, так как отображают градиент по-своему.
П.С. Материал найден в сети в свободном доступе, отредактирован и объединен мной специально для xwab.mobi.

15 Дек 2012, 12:34
Arhor

Хорошая, но неактуальная вещь.
Реализуй наведение на сенсорах

15 Дек 2012, 17:45
MrILLUMINOR

Arhor, почему же не актуальная?

15 Дек 2012, 17:46
Sandr

Arhor, ещё какая актуальная вещь.

15 Дек 2012, 18:34
Arhor

Неактуально по 2 причинам.
1 - если на сайте требуются всплывающие подсказки, значит сайт сделан не просто плохо, он сделан отвратительно.
2 - каким же образом на сенсорных экранах планируется реализовать наведение? floating touch вещь хорошая, но малораспространенная.
А без наведения? двойное нажатие на ссылку?
Если же юзать фичу применительно к wap mmo, то она реализована в режиме обучения по факту, и обратной связи этот режим дает больше чем всплывающие подсказки.
Мое мнение: фича слишком неудобная чтобы использовать в вапе (да и слишком необязательная), и слишком старая для веба.
Вывод же меню для фоловверов малость топорный, на jsquery есть решения, гораздо более изящные.

15 Дек 2012, 20:04
TAS

Наведение на ПК = 1 тычку пальцем по сенсорному экрану.

Т,е. по твоему и vk.com и facebook.com и twitter.com - все они сделаны отвратительно? Что за глупости?

15 Дек 2012, 20:07
Arhor

TAS, ты же мегодизайнер, различай подсказки и уведомления.

15 Дек 2012, 20:13
Pisatel

Arhor, если на сайте требуются подсказки- это совершенно не значит, что сайт сделан плохо или отвратительно. Ты забываешь, что интернетом пользуются люди не только школьного возраста, но и люди, которым за 50-60 лет, в том числе и женщины, которые без подсказки не догадаются. Так что данное твое заявление считаю необоснованным. Далее- устарело. Что ж, возможно. Но тогда более совершенный код- в студию! Это будет интересно, нужно и полезно не только мне, я думаю. Насчет сенсоров: немного не понял тебя: данное окно вряд ли будет востребовано для пда, это для веб.

17 Дек 2012, 11:03
Ответить на тему