В бумажных книгах около мест, требующих пояснений, стоят цифры, а внизу страницы около цифр идут соответствующие пояснения. У таких пояснений есть свое название - сноски. Иногда их выносят в конец текста, как например в случаях со списком используемой литературы в рефератах и диссертациях. Где бы их ни размещали, сноски всегда отделены от основного текста в бумажных книжках.
Электронные издания немного отличаются от бумажных. В электронных статьях тоже можно использовать сноски, при клике на которые страница прокрутится к области сносок Перейти. Но согласитесь, что одно дело посмотреть вниз бумажной страницы, а другое дело постоянно крутить страницу вверх-вниз.
Реализация сносок с помощью прокручивания страниц имеет право на жизнь, но лично мне больше нравится другой способ - показывать текст сноски при наведении (для тех, кто с мобильных устройств – при клике) .
Для реализации всплывающих подсказок существует довольно много мелких решений. Но так как практически во всех сайтах я использую Bootstrap, я опишу как я реализую сноски на странице с использованием возможностей именно Bootstrap.
Мои требования к реализации сносок:
- Автоматическая нумерация сносок (реализуется с помощью счетчиков CSS);
- Возможность использования HTML-тэгов в сносках (настраивается с помощью JavaScript);
- Удобство отображения сносок при непроизвольных движениях мышкой (реализовано в Bootstrap).
Реализации автонумерации сносок
Проставлять номера вручную – это не прогрессивный метод. Современные средства CSS позволяют пройтись по всем сноскам и присвоить им номера автоматически.
body { counter-reset: notecounter; } span.note:before { counter-increment: notecounter; content: counter(notecounter); position: relative; top: -0.4em; } span.note { color: #24B1E6; }
Свойство counter-reset создает CSS счетчик notecounter для страницы внутри тэга body и присваивает ему начальное значение равное 0.
counter-increment: notecounter увеличивает значение на 1 для каждого найденного элемента с классом .note
content: counter(footnotecounter) добавляет номер для сноски перед содержимым тэга span
Пример записи тэга для сноски:
<span class='note'></span>
Как уже писал выше, механизм всплывающих подсказок достойно реализован в Bootstrap, потому я использую именно его. Чтобы Bootstrap понял, что ему нужно обработать тэг как подсказку, в тэг span нужно добавить атрибут data-toggle="tooltip":
<span class='note' data-toggle="tooltip" title="Эта сноска реализована с помощью Bootstrap"></span>
Заключительный шаг перед тем, как все заработает – добавить JS на страницу :
jQuery(document).ready(function() { jQuery('[data-toggle="tooltip"]').tooltip() });
Если хотите добавлять HTML тэги в сноски, то тогда JS надо изменить на такой:
jQuery(document).ready(function() { jQuery('[data-toggle="tooltip"]').tooltip({html:true}) });
Если html-тэги хотите добавить только в одной сноске, то можно добавить в тэг span атрибут data-html="true"
<span class='note' data-toggle="tooltip" data-html="true" title="Эта сноска реализована с помощью <a href="#">Bootstrap</a>"></span>
Настройка видимости
По умолчанию, всплывающие подсказки при уводе курсора мыши в сторону быстро пропадают. Например, если вы в подсказку вставите гиперссылку, то нажать на нее не сможете. Чтобы защитить подсказки от пропадания с экрана при движении мышкой, нужно добавить немного отличный JS код с указанием задержки.
jQuery(document).ready(function () { jQuery('[data-toggle="tooltip"]').each(function () { var $elem = jQuery(this); $elem.tooltip({ html: true, container: $elem, delay: { hide: 400 } }); }); });
Особенности использования в WordPress
WordPress по умолчанию преобразует двойные кавычки в так называемые "умные кавычки", заменяет знак - на ‐. Поэтому, чтобы обезопасить себя от умностей WordPress, рекомендую добавить такие строчки в код файла functions.php вашей темы.
add_filter( 'no_texturize_tags', 'my_no_texturize_tags' ); function my_no_texturize_tags( $tags ) { $tags[] = 'span'; return $tags; }
---------
согласитесь, что не очень удобно прокручивать страницу, чтобы посмотреть сноску
Здравствуйте!
Возможно, вы хорошо разбираетесь и в Ворде? Про его всплывающие подсказки хочется спросить. Можно?
Комментарий by Юрий — 02.06.2019 @ 10:14
Да, конечно. Спрашивайте
Комментарий by Alexey — 12.08.2019 @ 10:20