Всплывающие подсказки “Tool-Tipp” могут быть очень полезным инструментом на странице, например, для того, что бы посетитель получил дополнительную информацию, для сокращения или пояснения иностранных слов. Такая подсказка появляется при наведении курсора на слово в виде небольшого всплывающего окна.
С появившимся в HTML5 атрибутом “Data” информация может быть применена к любым отдельным элементам . Эти атрибуты могут быть считаны с помощью CSS3 и, таким образом показать содержание подсказки.
Как создать пользовательский атрибут?
Все эти атрибуты начинаются с “data-“, а затем добавляется уникальное имя.
В HTML дополнительная информация для слова записывается следующим образом:
<span class="tooltip" data-tooltip="HyperText Markup Language"> HTML </span>
Теперь начинается настоящая работа, потому что это подсказка разработана с CSS3. Для начала, подсказка получает “position: relative“, что бы она правильно позиционировалась.
[data-tooltip] { position: relative; display: inline-block; }
В следующем шаге с помощью псевдо-элемента “:before” создаётся стрелка, указывающая на поясняемое слово. При этом, что бы псевдо-элемент отображался, “content” должен присутствовать, даже если он, как в этом случае, остаётся пустой. Стрелка появляется только при наведении указателем мыши на слово и элемент становится невидимым “visibility: hidden. И с помощью “opacity” от “0” к “1” медленно появляется. При использовани “margin-top” стрелка сначала появится над словом (-8px), а затем перенесётся в течение 0,3 сек под слово (margin-top: 5px).
[data-tooltip]:before { content: ''; position: absolute; visibility: hidden; opacity: 0; width: 0; margin-top: -8px; border: 8px solid transparent; border-bottom: 10px solid #568bbc; border-top: none; z-index: 1001; transition: .3s; } [data-tooltip]:hover:before, [data-tooltip]:focus:before { visibility: visible; opacity: 1; margin-top: 5px; } .tooltip:before { top: 100%; left: 45%; } span.tooltip { cursor: help; border-bottom: 1px dotted #000; line-height: 1.1em; }
Для того, что бы сделать фон для подсказки, используется псевдо-элемент “:after”. При этом, можно добавить тень вокруг острия стрелки так, чтобы она лучше выделялась на фоне текста.
[data-tooltip]:after { content: attr(data-tooltip); position: absolute; visibility: hidden; opacity: 0; margin-top: -1px; padding: 8px 10px; background: linear-gradient(#568bbc,#39648c); border-radius: 5px; text-shadow: 0 -1px 0 #000; font-size: .75em; line-height: 1.4em; white-space: nowrap; color: #fff; box-shadow: 10px 10px 12px #111; z-index: 1001; transition: .3s; } [data-tooltip]:hover:after, [data-tooltip]:focus:after { visibility: visible; opacity: 1; margin-top: 5px; } .tooltip:after { top: 100%; left: 45%; margin-left: -50%; }
Вот и все! Подсказка для тестирования готова!
Совет: Подсказки, с помощью команды ” white-space: nowrap ” располагаются всегда в ряд, но для длинных текстов, желательно удалить эту деталь и работать с определенной шириной или высотой.