× К оглавлению На главную Об авторе

Дата и время публикации:

 


1. Что это такое

Всплывающая подсказка удобное средство, чтобы снабдить кратким описанием посетителей на странице HTML, например указать, что делает та или иная ссылка с использованием атрибута "title" или элемента SPAN через каскадные таблицы CSS3, как иллюстрирует листинге 1.1.

Листинг 1.1

   <a href="#" title="Инструкции для дальнейших действий" >ссылки с подсказкой</a>     

2. Использование каскадных таблиц CSS3

2.1 Простота использования

Данный способ позволяет получить всплывающую подсказкуДа-Да – это всплывающая подсказка, вид которой можно привести в соответствие с дизайном страницы HTML. При этом её легко можно встраивать в текст предложения в виде контейнера – видимого читателю текст и скрытый, содержащий текст подсказки, как показано в листинге 2.1.

Листинг 2.1

   <p>Данный способ позволяет получить 
   <span class="tooltip">всплывающую подсказку
   <span class="tooltiptext">Да-Да – это всплывающая подсказка
   </span></span> 
   . . . 
   </p>      

При этом, потребуется использовать два тега span и соответствующие классы каскадных таблиц:

2.2 Класс tooltip

Отвечает за оформление видимой части контейнера, как показано в листинге 2.2.1

Листинг 2.2.1

.tooltip {
    position:      relative;         /* метод отображения текста – отн. места вставки        */        
    display:       inline-block;     /* с возможностью обтекания окружающие его элементами   */
    border-bottom: 1px dotted #004655; /* c выделением подчеркиванием пунктирной линией и      */  
    cursor:        pointer;          /* и изменением курсора на указатель при наведении "мышки" */   
}

В тоже время, не на всех устройствах существует возможность наведения указателя. Особенно, если идет речь о речевых браузерах и синтезаторах или устройствах, основанных на системе Брайля, для пользователей с ограниченной функцией слуха, или о планшетах и смартфонах, в которых он просто отсутствует за ненадобностью. Поэтому для того рода устройств в классе tooltip делаем настройки курсора по-умолчанию при помощи запроса @media, как показано в листинге 2.2.2 .

Листинг 2.2.2

@media screen and (max-device-width: 1024px) {
  .tooltip {pointer: default;}   /* делаем курсор по умолчанию там, где  */
                                 /* его невозможно будет увидеть     */
}

2.3 Класс tooltiptext

Как следует из листинга 2.3, данный класс "играет" только вместе с классом tooltip и придает форму и оформление всплывающей подсказки

Листинг 2.3

.tooltip .tooltiptext {
    visibility: hidden;        /* Снимаем видимость, пока не заиграет селектор     */
    width: auto;               /* при наведении пользователем курсора. Разрешаем   */      
    background-color: #004655; /* в динамике менять размер и устанавливаем цвет    */ 
    color: #E6FFFB;            /* текста и фона.                                   */        
    text-align: center;        /* Выравниваем по центру текст всплывающей подсказки,*/    
    border-radius: 6px;        /* округляем углы рамки,                            */
    padding: 5px 0;            /* Устанавливаем внутренний отступ текста от края   */
    position: absolute;        /* рамки подсказки и позицианируемся от края контейнера */
    z-index: 1;                /* с отображением наложением вторым слоем           */
    bottom: 125%;              /* Задаем в процентах, положение элемента отн. края родителя */
    left: 50%;                 /* и центрируем его в следующих двух строчках.      */ 
    margin-left: -50%;
    opacity: 0;               /* устанавливаем начальную прозрачность и            */ 
    transition: opacity 2s;   /* время затенения, которое установлено в селекторе  */    
    -webkit-transition: opacity 5s; /* псевдокласса ":hover", а так же   */ 
    -moz-transition: opacity 5s;    /* различные интерпретации для совместимости   */
    -o-transition: opacity 5s;      /* c другими браузерами                        */
}

2.4 Псевдоклассы :hover и :after

Оба псевдоклассы позволяют "вызывать" подсказку в контейнер при наведении курсора (:hover) и придание ей формы после отображения (:after). Соответственно, их определение представлено в листингах 2.4.1 и 2.4.2

Листинг 2.4.1

/* Псевдокласс "играет" после отображения подсказки  */
.tooltip .tooltiptext::after {
    content: "";                /* За счет применения свойств позиционирования */               
    position: absolute;         /* и вставки содержимого подсказке обретает    */
    top: 100%;                  /* красивую форму.                             */
    left: 50%;
    margin-left: -1%;
    border-width: 5px;
    border-style: solid;
    border-color: #004655 transparent transparent transparent;
} 

Листинг 2.4.2

/* Псевдокласс "играет" после отображения подсказки  */
.tooltip .tooltiptext::after {
    content: "";                /* За счет применения свойств позиционирования */               
    position: absolute;         /* и вставки содержимого подсказке обретает    */
    top: 100%;                  /* красивую форму.                             */
    left: 50%;
    margin-left: -1%;
    border-width: 5px;
    border-style: solid;
    border-color: #004655 transparent transparent transparent;
} 

3. Библиография


1) How to Add a Tooltip in HTML

2) How TO – Tooltip

3) Tooltip with HTML content without JavaScript

4) Creating tooltips using the title attribute of HTML

5) Использование CSS переходов

6) Медиа-запросы

7) transition

8) Селекторы псевдоклассов и псевдоэлементов в CSS (hover, first-child, first-line и другие), отношения между тегами Html кода