Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2013, 13:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Hint (Подсказка) на CSS
Слепил тут подсказку (hint) на CSS, может кому пригодится))) Подсказку можно делать любого вида/стиля
<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        body {
            overflow-x: hidden;
            padding: 0 20px;
        }


        .wink {
            position: relative;
            display: inline-block;
            background-image: url('http://javascript.ru/forum/images/smilies/wink.gif');
            width: 20px;
            height: 20px;
        }
        .agree {
            position: relative;
            display: inline-block;
            background-image: url('http://javascript.ru/forum/images/smilies/agree.gif');
            width: 37px;
            height: 23px;
        }
        .thanks {
            position: relative;
            display: inline-block;
            background-image: url('http://javascript.ru/forum/images/smilies/thank_you2.gif');
            width: 36px;
            height: 29px;
        }


		/* Простой вид подсказки */
        [data-hint]:after {
            opacity: 0;
            content: "";
        }
        [data-hint]:hover {} /* IE10 без этой строчки не работает */
        [data-hint]:hover:after {
            opacity: 1;
            -webkit-transition: opacity 0.2s 50ms ease;
            -moz-transition: opacity 0.2s 50ms ease;
            -o-transition: opacity 0.2s 50ms ease;
            transition: opacity 0.2s 50ms ease;
            position: absolute;
            content: attr(data-hint);
            white-space: pre;
            top: 90%;
            left: 60%;
            border: 1px solid #999;
            border-radius: 3px;
            font: normal 11px Tahoma;
            padding: 5px 5px 5px 25px;
            box-shadow: 3px 3px 3px -2px rgba(0,0,0,0.5);
            z-index: 1000;
            cursor: default;
            background: #ffffed url('http://spb-piksel.ru/20x20-Info.png') 2px center no-repeat;
        }
 
        /* Отображает внизу контента подсказку */
        [data-hint-down]:after, [data-hint-down]:before {
            opacity: 0;
            content: "";
            position: absolute;
            top: 100%;
            left: 50%;
            z-index: 1000;
            cursor: default;
            white-space: pre;
        }
        [data-hint-down]:hover {} /* IE10 без этой строчки не работает */
        [data-hint-down]:hover:before {
            opacity: 1;
            -webkit-transition: opacity 0.2s 50ms ease;
            -moz-transition: opacity 0.2s 50ms ease;
            -o-transition: opacity 0.2s 50ms ease;
            transition: opacity 0.2s 50ms ease;
            content: attr(data-hint-down);
            border: 1px solid #999;
            border-radius: 3px;
            font: normal 11px Tahoma;
            padding: 5px 5px 5px 25px;
            box-shadow: 3px 3px 3px -2px rgba(0,0,0,0.5);
            background: #ffffed url('http://spb-piksel.ru/20x20-Info.png') 2px center no-repeat;
            margin: 9px 0 0 -10px;
        }
        [data-hint-down]:hover:after {
            opacity: 1;
            -webkit-transition: opacity 0.2s 50ms ease;
            -moz-transition: opacity 0.2s 50ms ease;
            -o-transition: opacity 0.2s 50ms ease;
            transition: opacity 0.2s 50ms ease;
            content: "\25B2";
            color: #ffffed;
            margin: -5px 0 0 -7px;
            text-shadow: 0px -1px 1px #444;
        }

 
        /* Отображает вверху контента подсказку */
        [data-hint-up]:after, [data-hint-up]:before {
            opacity: 0;
            content: "";
            position: absolute;
            bottom: 100%;
            left: 50%;
            z-index: 1000;
            cursor: default;
            white-space: pre;
        }
        [data-hint-up]:hover {} /* IE10 без этой строчки не работает */
        [data-hint-up]:hover:before {
            opacity: 1;
            -webkit-transition: opacity 0.2s 50ms ease;
            -moz-transition: opacity 0.2s 50ms ease;
            -o-transition: opacity 0.2s 50ms ease;
            transition: opacity 0.2s 50ms ease;
            content: attr(data-hint-up);
            border: 1px solid #999;
            border-radius: 3px;
            font: normal 11px Tahoma;
            padding: 5px 5px 5px 25px;
            box-shadow: 3px 3px 3px -2px rgba(0,0,0,0.5);
            background: #ffffed url('http://spb-piksel.ru/20x20-Info.png') 2px center no-repeat;
            margin: 0 0 9px -10px;
        }
        [data-hint-up]:hover:after {
            opacity: 1;
            -webkit-transition: opacity 0.2s 50ms ease;
            -moz-transition: opacity 0.2s 50ms ease;
            -o-transition: opacity 0.2s 50ms ease;
            transition: opacity 0.2s 50ms ease;
            content: "\25BC";
            color: #ffffed;
            margin: 0 0 -5px -7px;
            text-shadow: 1px 2px 2px #666;
        }
        </style>
    </head>
    <body>
        <p>Наведите на смайл, увидите подсказку сделанную на CSS.<br />Плавное появление работает только в FireFox, другие браузеры применять transition на псевдоэлемент не хотят ;(</p>
        <br />
        <span class="wink" data-hint="Подмигиваю ;)"></span>
        <span class="agree" data-hint="Согласен :agree:"></span>
        <span>Простая подсказка</span>
        <br />
        <br />
        <br />
        <span class="wink" data-hint-down="Подмигиваю ;)"></span>
        <span class="agree" data-hint-down="Согласен :agree:"></span>
        <span>Подстказка отображается снизу с указывающей стрелкой вверх</span>
        <br />
        <br />
        <br />
        <span class="wink" data-hint-up="Подмигиваю ;)"></span>
        <span class="agree" data-hint-up="Согласен :agree:"></span>
        <span>Подстказка отображается сверху с указывающей стрелкой вниз</span>
        <br />
        <br />
        <br />
        <span class="thanks" data-hint-up="Слепил тут подсказку (hint) на CSS,
может кому пригодится)))
Подсказку можно делать любого вида/стиля"></span>
        <span>Многострочная подсказка</span>
    </body>
</html>

Последний раз редактировалось devote, 13.03.2013 в 17:04.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2013, 16:16
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Добавил еще пару вариантов
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 13:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от devote
Добавил еще пару вариантов
Актуально бы еще к нему костыль, чтобы перелопатить нужные титлы (из заданного массива css(Query) селекторов) дабы удалить используемые библиотеки, к примеру типа tipsy.min.js, тогда статья будет иметь законченный вид, тогда наверно будет развитие включения этого атрибута уже на сервере, поскольку юзер сразу сможет оценить и использовать смену всплывающих подсказок, посколь css3, ориентируемся ток на новые браузеры с querySelectorAll

Последний раз редактировалось Deff, 14.03.2013 в 13:25.
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 20:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Deff,
не совсем тебя понял что ты имеешь ввиду. По подробнее бы и с примерами
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2013, 21:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Deff, прелесть этих тултипов как раз в том, что они не требуют JS. А ты всю задумку ломаешь. Если js, то уж лучше с нормальными возможностями, которые дают плагинчики типа tipsy
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2013, 03:10
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от devote
не совсем тебя понял

Поясняю:
Суть такова - есть туча сайтов с подсказками title костомизированных плагинами,
Сразу лезть и менять на серве атрибуты title - на data-hint никто не решиться, а проверять воздействие на публику стоит сразу и на большем колве контента и достаточно безболезненно в смысле отката,
Дык именно к статье приложить мелкоскриптик замены titlе на data-hint,
Востребованность подобного подхода достаточно велика(сужу по своей техподдержке (Я не имею ввиду здесь в топике, а надеюсь что статья найдет интерес и на произвольной публике

Последний раз редактировалось Deff, 16.03.2013 в 16:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение вычисленного значения css свойства FanAizu jQuery 2 12.03.2014 20:30
Как сохранить css всей страницы? KupueIIIKo Events/DOM/Window 1 20.01.2012 10:39
JQuery CSS анализатор javascript jQuery 2 15.08.2010 21:27
если (свойство css == 2) свойство css = 1; funkypublic Events/DOM/Window 1 09.06.2010 17:39
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58