Разное

Всплывающие подсказки css: Всплывающая подсказка на CSS | htmlbook.ru

08.05.2022

Содержание

Всплывающие подсказки · Bootstrap v4.6

Посмотреть на GitHub Оригинал

Документация и примеры для добавления настраиваемых всплывающих подсказок Bootstrap с помощью CSS и JavaScript с использованием CSS3 для анимации и атрибутов данных для локального хранения заголовков.

Обзор

Что нужно знать при использовании плагина всплывающей подсказки:

  • Подсказки полагаются на стороннюю библиотеку Popper для позиционирования. Вы должны включить popper.min.js перед bootstrap.js или использовать bootstrap.bundle.min.js / bootstrap.bundle.js, который содержит Popper чтобы всплывающие подсказки работали!
  • Если Вы создаете наш JavaScript из исходного кода, для него требуется util.js.
  • Всплывающие подсказки используются по соображениям производительности, поэтому Вы должны инициализировать их самостоятельно.
  • Всплывающие подсказки с заголовками нулевой длины никогда не отображаются.
  • Укажите container: 'body', чтобы избежать проблем с рендерингом в более сложных компонентах (например, в наших группах ввода, группах кнопок и т.д.).
  • Всплывающие подсказки для скрытых элементов не работают.
  • Всплывающие подсказки для элементов .disabled или disabled должны запускаться для элемента-оболочки.
  • При запуске от гиперссылок, охватывающих несколько строк, всплывающие подсказки будут центрированы. Используйте white-space: nowrap; на Ваших <a>, чтобы избежать такого поведения.
  • Всплывающие подсказки должны быть скрыты до того, как соответствующие им элементы будут удалены из DOM.
  • Всплывающие подсказки могут запускаться благодаря элементу внутри теневой модели DOM.

По умолчанию этот компонент использует встроенное средство очистки содержимого, которое удаляет все элементы HTML, которые не разрешены явно. Дополнительные сведения смотрите в разделе sanitizer в нашей документации по JavaScript.

Получил все это? Отлично, посмотрим, как они работают, на некоторых примерах.

Пример: Включить всплывающие подсказки везде

Один из способов инициализировать все всплывающие подсказки на странице — это выбрать их по их атрибуту data-toggle:

$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})

Примеры

Наведите курсор на ссылки ниже, чтобы увидеть всплывающие подсказки:

Placeholder text to demonstrate some inline links with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of real text. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you’ve now seen how these tooltips on links can work in practice, once you use them on your own site or project.

Наведите указатель мыши на кнопки ниже, чтобы увидеть четыре направления подсказок: вверх, вправо, внизу и влево.

<button type="button" data-toggle="tooltip" data-placement="top" title="Подсказка вверху">
  Подсказка вверху
</button>
<button type="button" data-toggle="tooltip" data-placement="right" title="Подсказка справа">
  Подсказка справа
</button>
<button type="button" data-toggle="tooltip" data-placement="bottom" title="Подсказка снизу">
  Подсказка снизу
</button>
<button type="button" data-toggle="tooltip" data-placement="left" title="Подсказка слева">
  Подсказка слева
</button>

И с добавленным пользовательским HTML:

<button type="button" data-toggle="tooltip" data-html="true" title="<em>Всплывающая подсказка</em> <u>с</u> <b>HTML</b>">
  Всплывающая подсказка с HTML
</button>

Применение

Плагин всплывающих подсказок генерирует контент и разметку по запросу и по умолчанию помещает всплывающие подсказки после их триггерного элемента.

Запуск всплывающей подсказки через JavaScript:

$('#example').tooltip(options)
Переполнение
auto и scroll

Положение всплывающей подсказки пытается автоматически измениться, когда родительский контейнер имеет overflow: auto или overflow: scroll, как наш .table-responsive, но по-прежнему сохраняет исходное положение размещения. Чтобы решить эту проблему, установите для параметра

boundary значение, отличное от значения по умолчанию, 'scrollParent', например, 'window':

$('#example').tooltip({ boundary: 'window' })

Разметка

Требуемая разметка для всплывающей подсказки — это только атрибут data и заголовок title HTML-элемента, для которого Вы хотите иметь всплывающую подсказку. Сгенерированная разметка всплывающей подсказки довольно проста, хотя для нее требуется позиция (по умолчанию плагином установлено значение top).

Работа с всплывающими подсказками для пользователей клавиатуры и вспомогательных технологий

Вы должны добавлять всплывающие подсказки только к HTML-элементам, которые традиционно ориентированы на клавиатуру и являются интерактивными (например, ссылки или элементы управления формы). Хотя произвольные элементы HTML (такие как <span>) можно сделать доступными для фокусировки, добавив атрибут tabindex =" 0 ", это добавит потенциально раздражающие и сбивающие с толку позиции табуляции на неинтерактивных элементах для пользователей клавиатуры, и большинство Вспомогательные технологии в настоящее время не объявляют всплывающую подсказку в этой ситуации. Кроме того, не полагайтесь исключительно на hover в качестве триггера для Вашей всплывающей подсказки, так как это сделает невозможным запуск Ваших всплывающих подсказок для пользователей клавиатуры.

<!-- HTML для записи -->
<a href="#" data-toggle="tooltip" title="Текст всплывающей подсказки!">Наведите на меня</a>
<!-- Разметка, созданная плагином -->
<div role="tooltip">
  <div></div>
  <div>
    Текст всплывающей подсказки!
  </div>
</div>

Отключенные элементы

Элементы с атрибутом disabled не являются интерактивными, то есть пользователи не могут сфокусироваться, навести на них курсор или щелкнуть их, чтобы вызвать всплывающую подсказку (или всплывающее окно).

В качестве обходного пути Вы захотите вызвать всплывающую подсказку из оболочки <div> или <span>, в идеале сделанной с фокусировкой на клавиатуре, используя tabindex="0", и переопределить pointer-events на отключенный элемент.

<span tabindex="0" data-toggle="tooltip" title="Отключенная подсказка">
  <button type="button" disabled>Отключенная кнопка</button>
</span>

Параметры

Параметры могут передаваться через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя параметра к

data-, как в data-animation="".

Обратите внимание, что по соображениям безопасности параметры sanitize, sanitizeFn и whiteList не могут быть предоставлены с использованием атрибутов данных.

НазваниеТипПо умолчаниюОписание
animationbooleantrueПрименить переход CSS fade к всплывающей подсказке
containerstring | element | falsefalse

Добавляет всплывающую подсказку к определенному элементу.

Пример: container: 'body'. Этот параметр особенно полезен тем, что позволяет размещать всплывающую подсказку в потоке документа рядом с запускающим элементом, что предотвратит отрыв всплывающей подсказки от запускающего элемента во время изменения размера окна.

delaynumber | object0

Задержка отображения и скрытия всплывающей подсказки (мс) — не относится к ручному типу триггера

Если указан номер, задержка применяется как к скрытию, так и к отображению

Структура объекта: delay: { "show": 500, "hide": 100 }

htmlbooleanfalse

Разрешить HTML во всплывающей подсказке.

Если задано значение true, HTML-теги в title всплывающей подсказки будут отображаться во всплывающей подсказке. Если false, метод jQuery text будет использоваться для вставки содержимого в DOM.

Используйте текст, если Вас беспокоят XSS-атаки.

placementstring | function‘top’

Как разместить всплывающую подсказку — auto | top | bottom | left | right.

Если задано auto всплывающая подсказка будет динамически переориентирована.

Когда функция используется для определения размещения, она вызывается с помощью узла DOM всплывающей подсказки в качестве первого аргумента и узла DOM элемента запуска в качестве второго. Контекст this установлен на экземпляр всплывающей подсказки.

selectorstring | falsefalseЕсли предусмотрен селектор, объекты всплывающей подсказки будут делегированы указанным целям. На практике это также используется для применения всплывающих подсказок к динамически добавляемым элементам DOM (поддержка jQuery.on). Смотрите это и информативный пример.
templatestring'<div role="tooltip"><div></div><div></div></div>'

Базовый HTML-код для использования при создании всплывающей подсказки.

Заголовок всплывающей подсказки title будет вставлен в .tooltip-inner.

.arrow станет стрелкой всплывающей подсказки.

Самый внешний элемент оболочки должен иметь класс .tooltip и role="tooltip".

titlestring | element | function»

Значение заголовка по умолчанию, если атрибут title отсутствует.

Если задана функция, она будет вызываться со ссылкой this, установленной на элемент, к которому прикреплена всплывающая подсказка.

triggerstring‘hover focus’

Как вызывается всплывающая подсказка — click | hover | focus | manual. Вы можете передать несколько триггеров; разделите их пробелом.

'manual' указывает, что всплывающая подсказка будет запускаться программно через .tooltip('show'), .tooltip('hide') и методы .tooltip('toggle'); это значение нельзя комбинировать с другими триггерами.

Само по себе 'hover' приведет к появлению всплывающих подсказок, которые нельзя запускать с клавиатуры, и их следует использовать только при наличии альтернативных методов передачи той же информации пользователям клавиатуры.

offsetnumber | string | function0

Смещение всплывающей подсказки относительно цели.

Когда функция используется для определения смещения, она вызывается с объектом, содержащим данные смещения в качестве первого аргумента. Функция должна возвращать объект с такой же структурой. Узел DOM запускающего элемента передается в качестве второго аргумента.

Дополнительную информацию смотрите документации Popper по смещению.

fallbackPlacementstring | array‘flip’Разрешить указать, какую позицию Popper будет использовать при откате. Для получения дополнительной информации смотрите документацию о поведении Popper.
customClassstring | function»

Добавляйте классы во всплывающую подсказку, когда она отображается. Обратите внимание, что эти классы будут добавлены в дополнение к любым классам, указанным в шаблоне. Чтобы добавить несколько классов, разделите их пробелами: 'a b'.

Вы также можете передать функцию, которая должна возвращать одну строку, содержащую дополнительные имена классов.

boundarystring | element‘scrollParent’Граница ограничения переполнения всплывающей подсказки. Принимает значения 'viewport', 'window', 'scrollParent' или ссылку HTMLElement (только JavaScript). Дополнительную информацию смотрите документацию preventOverflow Popper.
sanitizebooleantrueВключите или отключите очистку. Если активированы параметры 'template' и 'title', будут очищены. Смотрите раздел sanitizer в нашей документации по JavaScript.
whiteListobjectЗначение по умолчаниюОбъект, содержащий разрешенные атрибуты и теги
sanitizeFnnull | functionnullЗдесь Вы можете предоставить свою собственную функцию офистки. Это может быть полезно, если Вы предпочитаете использовать специальную библиотеку для выполнения очистки.
popperConfignull | objectnullЧтобы изменить конфигурацию Popper по умолчанию для Bootstrap, смотрите конфигурацию Popper.

Методы

Асинхронные методы и переходы

Все методы API асинхронны и запускают переход. Они возвращаются к вызывающей стороне, как только переход начинается, но до его завершения. Кроме того, вызов метода переходного компонента будет проигнорирован.

Дополнительную информацию см. в нашей документации по JavaScript.

$().tooltip(options)

Присоединяет обработчик всплывающей подсказки к коллекции элементов.

.tooltip('show')

Показывает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически показана (то есть до того, как произойдет событие shown.bs.tooltip). Это считается “ручным” запуском всплывающей подсказки. Всплывающие подсказки с заголовками нулевой длины никогда не отображаются.

$('#element').tooltip('show')
. tooltip('hide')

Скрывает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически скрыта (т.е. до того, как произойдет событие hidden.bs.tooltip). Это считается “ручным” запуском всплывающей подсказки.

$('#element').tooltip('hide')
.tooltip('toggle')

Переключает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически показана или скрыта (то есть до того, как произойдет событие shown.bs.tooltip или hidden.bs.tooltip). Это считается “ручным” запуском всплывающей подсказки.

$('#element').tooltip('toggle')
.tooltip('dispose')

Скрывает и уничтожает всплывающую подсказку элемента. Всплывающие подсказки, использующие делегирование (которые создаются с использованием [параметр selector] (#параметры)), не могут быть уничтожены индивидуально для дочерних элементов триггера.

$('#element').tooltip('dispose')
.tooltip('enable')

Дает возможность отображения всплывающей подсказки элемента. Подсказки включены по умолчанию.

$('#element').tooltip('enable')
.tooltip('disable')

Удаляет возможность отображения всплывающей подсказки элемента. Всплывающая подсказка будет отображаться, только если она будет повторно включена.

$('#element').tooltip('disable')
.tooltip('toggleEnabled')

Переключает возможность отображения или скрытия всплывающей подсказки элемента.

$('#element').tooltip('toggleEnabled')
.tooltip('update')

Обновляет положение всплывающей подсказки элемента.

$('#element').tooltip('update')

События

Тип событияОписание
show. bs.tooltipЭто событие запускается немедленно при вызове метода экземпляра show.
shown.bs.tooltipЭто событие запускается, когда всплывающая подсказка становится видимой для пользователя (ожидает завершения переходов CSS).
hide.bs.tooltipЭто событие запускается сразу после вызова метода экземпляра hide.
hidden.bs.tooltipЭто событие запускается, когда всплывающая подсказка перестала быть скрытой от пользователя (будет ждать завершения переходов CSS).
inserted.bs.tooltipЭто событие запускается после события show.bs.tooltip, когда шаблон всплывающей подсказки был добавлен в DOM.
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // сделайте что-нибудь...
})

Tooltip | Directives | BootstrapVue

Добавляйте настраиваемые всплывающие подсказки BootstrapVue к любому элементу. Всплывающие подсказки могут быть вызваны наведением курсора, фокусировкой или кликом по элементу.

Обзор

Используйте директиву v-b-tooltip для любого элемента или компонента, где вы хотите, чтобы всплывающая подсказка появлялась.

<div>
  <b-button v-b-tooltip.hover title="Содержание всплывающей подсказки">Наведите меня</b-button>
</div>
<!-- b-tooltip.vue -->

Что нужно знать при использовании директивы всплывающей подсказки:

  • Всплывающие подсказки полагаются на стороннюю библиотеку Popper.js для позиционирования.
  • Всплывающие подсказки требуют настраиваемого SCSS/CSS BootstrapVue для правильной работы и для вариантов.
  • Если заголовок не указан (или это пустая строка), всплывающая подсказка не будет отображаться.
  • Укажите контейнер: ‘body’ (по умолчанию), чтобы избежать проблем с рендерингом в более сложных компонентах (таких как группы ввода, группы кнопок и т. д.).
  • Не будут работать всплывающие подсказки для скрытых элементов.
  • Всплывающие подсказки для disabled элементов должны запускаться для элемента-оболочки.
  • При запуске из гиперссылок, которые охватывают несколько строк, всплывающие подсказки будут центрированы. Используйте white-space: nowrap; на ваших <a>, <b-link> и <router-link>, чтобы избежать такого поведения.
  • Всплывающие подсказки должны быть скрыты до того, как соответствующие им элементы будут удалены из DOM.

Позиционирование

Для позиционирования доступны двенадцать вариантов выравнивания: top, topleft, topright, right, righttop, rightbottom, bottom, bottomleft, bottomright, left, lefttop и leftbottom. Положение по умолчанию — top. Позиционирование относительно триггерного элемента.

Live example

<div>
  <b-container fluid>
    <b-row>
      <b-col md="3">
        <b-button v-b-tooltip.hover.top="'Подсказка!'" variant="primary">Вверху</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.right="'Подсказка!'" variant="primary">Справа</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.left="'Подсказка!'" variant="primary">Слева</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.bottom="'Подсказка!'" variant="primary">Внизу</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.topright="'Подсказка!'" variant="primary">Вверху справа</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip. hover.topleft="'Подсказка!'" variant="primary">Вверху слева</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.bottomright="'Подсказка!'" variant="primary">Внизу справа</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.bottomleft="'Подсказка!'" variant="primary">Внизу слева</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.lefttop="'Подсказка!'" variant="primary">Слева вверху</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.leftbottom="'Подсказка!'" variant="primary">Слева внизу</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.righttop="'Подсказка!'" variant="primary">Справа вверху</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.rightbottom="'Подсказка!'" variant="primary">Справа внизу</b-button>
      </b-col>
    </b-row>
  </b-container>
</div>
<!-- b-tooltip-positioning. vue -->

Триггеры

Всплывающие подсказки могут запускаться (открываться/закрываться) с помощью любой комбинации click, hover и focus. Триггер по умолчанию — hover focus. Или можно указать триггер ручного управления, где всплывающее окно может быть открыто или закрыто только программно.

Если всплывающая подсказка имеет более одного триггера, все триггеры должны быть очищены, прежде чем всплывающая подсказка закроется. т.е. если всплывающая подсказка имеет триггер focus click, и она была открыта focus, а затем пользователь щелкает элемент триггера, он должен кликнуть его еще раз и переместить фокус, чтобы закрыть всплывающую подсказку.

<div>
  <b-container>
    <b-row>
      <b-col md="3">
        <b-button v-b-tooltip="'Подсказка!'" variant="outline-success">Наведение + Фокус</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip. hover="'Подсказка!'" variant="outline-success">Наведение</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.click="'Подсказка!'" variant="outline-success">Клик</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.focus="'Подсказка!'" variant="outline-success">Фокус</b-button>
      </b-col>
    </b-row>
  </b-container>
</div>
<!-- b-tooltip-triggers.vue -->

Заставить всплывающие подсказки работать с клавиатурой и пользователями вспомогательных технологий

Вы должны добавлять всплывающие подсказки только к элементам HTML, которые традиционно являются интерактивными и ориентированными на клавиатуру (такими как ссылки, кнопки или элементы управления формы). Хотя произвольные элементы HTML (такие как <span>) можно сделать фокусируемыми, добавив атрибут tabindex="0", это добавит потенциально раздражающие и запутанные позиции табуляции на неинтерактивных элементах для пользователей клавиатуры. Кроме того, большинство вспомогательных технологий в настоящее время не объявляют всплывающую подсказку в этой ситуации.

Кроме того, не полагайтесь исключительно на hover в качестве триггера для всплывающей подсказки, так как это сделает ваши всплывающие подсказки невозможными для срабатывания для пользователей, использующих только клавиатуру.

Отключенные элементы

Элементы с атрибутом disabled не являются интерактивными, то есть пользователи не могут сфокусироваться, навести курсор или щелкнуть их, чтобы вызвать всплывающую подсказку (или всплывающее окно). В качестве обходного пути вы захотите вызвать всплывающую подсказку из оболочки <div> или <span>, в идеале сфокусируемой на клавиатуре с помощью tabindex="0", и переопределить pointer-events на отключенный элемент.

<div>
  <span tabindex="0" v-b-tooltip. top title="Отключенная подсказка">
    <b-button variant="primary" disabled>Кнопка отключена</b-button>
  </span>
</div>
<!-- disabled-trigger-element.vue -->

Предостережения со срабатыванием

focus на элементах <button>

Для правильного кросс-браузерного и кросс-платформенного поведения при использовании только триггера focus вы должны использовать элемент, который отображает тег <a>, а не тег <button>, и вы также должны включить атрибут tabindex="0".

Следующее сгенерирует <a>, который выглядит как кнопка:

<b-button
  href="#"
  tabindex="0"
  v-b-tooltip.focus
  title="Tooltip title"
>
  Кнопка ссылки с директивой всплывающей подсказки
</b-button>

Закрыть при следующем нажатии

Используйте как click, так и blur, если вы хотите, чтобы всплывающая подсказка открывалась только при клике элемента, но закрывалась, когда кликали что-либо еще в документе или получали фокус.

Обратите внимание, что ваш элемент должен находиться в последовательности вкладок документа, чтобы это работало. Если ваш элемент не является вкладкой, добавьте атрибут tabindex="0" к элементу.

Содержание заголовка

Существует несколько вариантов указания заголовка всплывающей подсказки.

По умолчанию всплывающая подсказка будет использовать атрибут title элемента в качестве содержимого всплывающей подсказки. Заголовок также можно передать как объект v-b-tooltip в виде

const options = {
  title: 'This is the title'
}

Если содержимое заголовка имеет базовую HTML-разметку, вам также потребуется установить для свойства html значение true или использовать модификатор директивы html

// Object format with HTML
const options = {
  title: 'This is the <strong>title</strong>',
  html: true
}

Заголовок также может быть ссылкой на функцию, которая вызывается каждый раз при открытии всплывающей подсказки. Чтобы сделать заголовок, возвращаемый функцией, реактивным при открытии, установите для заголовка ссылку на новую функцию при каждом изменении содержимого.

<template>
  <b-container>
    <b-row>
      <b-col md="3">
        <b-button v-b-tooltip.hover :title="'Tip from title attribute ' + date" variant="success">Title</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover="'String Tip'" variant="success">String</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.html="tipData" variant="success">Data</b-button>
      </b-col>
      <b-col md="3">
        <b-button v-b-tooltip.hover.html="tipMethod" variant="success">Method</b-button>
      </b-col>
    </b-row>
  </b-container>
</template>
<script>
  export default {
    data() {
      return {
        tipData: { title: 'Tooltip <em>Message</em>' },
        date: new Date(),
        timer: null
      }
    },
    mounted() {
      this. timer = setInterval(() => {
        this.date = new Date()
      }, 1000)
    },
    beforeDestroy() {
      clearInterval(this.timer)
    },
    methods: {
      tipMethod() {
        // Note this is called each time the tooltip is first opened.
        return '<strong>' + new Date() + '</strong>'
      }
    }
  }
</script>
<!-- b-tooltip-content.vue -->

Варианты и пользовательский класс

Всплывающие подсказки BootstrapVue поддерживают контекстные цветовые варианты с помощью нашего пользовательского CSS либо с помощью модификаторов директив, либо параметров конфигурации:

<template>
  <b-container fluid>
    <b-row>
      <b-col>
        <b-button v-b-tooltip.hover.v-danger title="Danger variant">Danger Modifier</b-button>
      </b-col>
      <b-col>
        <b-button v-b-tooltip.hover="{ variant: 'info' }" title="Info variant">Info Config</b-button>
      </b-col>
    </b-row>
  </b-container>
</template>
<!-- b-tooltip-variants. vue -->

Варианты темы Bootstrap по умолчанию: danger, warning, success, primary, secondary, info, light и dark. Вы можете изменить или добавить дополнительные варианты через Bootstrap переменные SCSS

Пользовательский класс можно применить к внешней оболочке всплывающей подсказки <div> с помощью свойства опции customClass:

<b-button v-b-tooltip.hover="{ customClass: 'my-tooltip-class' }" title="Tooltip">Кнопка</b-button>

Синтаксис и использование директив

<b-button v-b-tooltip:[container].[mod1].[mod2].[...].[modN]="<value>">Кнопка</b-button>

Где [container] может быть (необязательно):

  • Идентификатор элемента (минус #) для размещения разметки всплывающей подсказки
  • Если не предусмотрено, всплывающие подсказки добавляются к body. Если элемент триггера находится внутри модального окна, всплывающая подсказка будет добавлена к контейнеру модального окна

Где [modX] может быть (все необязательно):

  • Позиционирование: top, bottom, left, right, auto, topleft, topright, bottomleft, bottomright, lefttop, leftbottom, righttop или rightbottom (выигрывает последний найденный, по умолчанию top).
  • Триггер события: click, hover, focus, blur (если ничего не указано, по умолчанию используются focus и hover. blur является обработчиком только закрытия, и если он указан сам по себе, то будет преобразован в focus). Используйте manual, если вы хотите управлять видимостью только вручную.
  • nofade для отключения анимации.
  • html, чтобы включить рендеринг необработанного HTML. По умолчанию HTML экранируется и преобразуется в текст.
  • Значение задержки в формате d### (где ### в мс, по умолчанию 50), применяется как к hide, так и к show.
  • Значение задержки показа в формате ds### (где ### в мс, по умолчанию 50), применяется только к триггеру show.
  • Значение задержки скрытия в формате dh### (где ### в мс, по умолчанию 50), применяется только к триггеру hide.
  • Значение смещения в пикселях в формате o### (где ### это количество пикселей, по умолчанию 0. Допускаются отрицательные значения).
  • Настройка границы window или viewport. Элемент для ограничения визуального размещения всплывающей подсказки. Если не указано, граница по умолчанию соответствует родительскому элементу прокрутки триггерного элемента (в большинстве случаев этого будет достаточно).
  • Контекстный вариант в форме v-XXX (где XXX название цветового варианта).
  • noninteractive, чтобы сделать всплывающую подсказку не интерактивной для пользователя.

Где <value> может быть (необязательно):

  • Строка, содержащая заголовок всплывающей подсказки
  • Ссылка на функцию для создания заголовка всплывающей подсказки (получает один аргумент, который является ссылкой на элемент DOM, вызывающий всплывающую подсказку)
  • Объект, содержащий более сложную конфигурацию всплывающей подсказки. Смотрите ниже допустимые свойства объекта:

Свойства объекта конфигурации параметров:

СвойствоТипПо умолчаниюОписание
animationBooleantrueПрименить CSS-переход затухания к всплывающей подсказке
containerString ID или HTMLElement или falsefalseДобавляет всплывающую подсказку к определенному элементу. Пример: container: '#body'. Этот параметр особенно полезен тем, что позволяет расположить всплывающую подсказку в потоке документа рядом с инициирующим элементом, что предотвратит всплывающую подсказку от инициирующего элемента во время изменения размера окна. Если установлено значение false, всплывающая подсказка будет добавлена к body, или, если элемент триггера находится внутри модального окна, он будет добавлен к контейнеру модального окна
delayNumber или Object50Задержка показа и скрытия всплывающей подсказки (мс). Если указано число, задержка применяется как для скрытия, так и для показа. Структура объекта: delay: { "show": 500, "hide": 100 }
htmlBooleanfalseРазрешить HTML в подсказке. Если задано значение true, теги HTML в заголовке всплывающей подсказки будут отображаться во всплывающей подсказке. Если false, заголовок будет вставлен как обычный текст. Используйте текст, если вы беспокоитесь о XSS-атаках
placementString или Function'top'Как расположить всплывающую подсказку — auto, top, bottom, left, right, topleft, topright, bottomleft, bottomright, lefttop, leftbottom, righttop или rightbottom. Когда указано auto, он будет динамически переориентировать всплывающую подсказку
titleString или Element или Function''Значение заголовка по умолчанию, если атрибут заголовка отсутствует. Если задана функция, она должна возвращать строку
triggerString'hover focus'Как срабатывает всплывающая подсказка: click, hover, focus. Вы можете передать несколько триггеров; разделите их пробелом
offsetNumber или String0Смещение всплывающей подсказки относительно ее цели. Для получения дополнительной информации обратитесь к документации по смещению Popper.js
fallbackPlacementString или Array'flip'Позволяет указать, какую позицию Поппер будет использовать при откате. Может быть flip, clockwise, counterclockwise или массивом мест размещения. Для получения дополнительной информации обратитесь к документации по поведению Popper.js
boundaryString ID или HTMLElement'scrollParent'Контейнер, в котором всплывающая подсказка будет визуально ограничена. В большинстве случаев должно быть достаточно значения по умолчанию, но вам может потребоваться изменить его, если ваш целевой элемент находится в небольшом контейнере с прокруткой переполнения. Поддерживаемые значения: 'scrollParent' (по умолчанию), 'viewport', 'window', или ссылка на элемент HTML
boundaryPaddingNumber5Количество пикселей, используемое для определения минимального расстояния между границами и всплывающей подсказкой. Это гарантирует, что всплывающая подсказка всегда имеет небольшой отступ между краями своего контейнера
interactiveBooleantrueДолжна ли всплывающая подсказка быть интерактивной с пользователем
variantStringnullКонтекстный вариант цвета всплывающей подсказки
customClassStringnullПользовательское имя класса для применения к элементу внешней оболочки всплывающей подсказки
idStringnullИдентификатор для использования в корневом элементе всплывающей подсказки. Если ничего не указано, оно будет сгенерировано автоматически. Если вы предоставляете идентификатор, он должен быть уникальным на отображаемой странице
disabledBooleanfalseУстановите значение true, чтобы отключить всплывающую подсказку

Использование

Самое простое использование:

v-b-tooltip="'Это Подсказка!'"

или используйте атрибут title элемента для содержимого всплывающей подсказки:

v-b-tooltip title="Это заголовок Подсказки"

Примеры размещения:

v-b-tooltip. bottom
v-b-tooltip.right

Примеры вариантов:

v-b-tooltip.v-primary => `primary` variant
v-b-tooltip.v-danger => `danger` variant

Примеры триггеров:

v-b-tooltip.hover => Hover only
v-b-tooltip.click => Click only
v-b-tooltip.hover.focus => Both hover and focus

Комбо:

v-b-tooltip.hover.bottom => Show on hover and place at bottom
v-b-tooltip.bottom.hover => Same as above
v-b-tooltip.bottom.hover.v-danger => Same as above, but with variant

Объект:

v-b-tooltip="{ title: 'Title', placement: 'bottom', variant: 'danger' }"

Скрытие и отображение всплывающих подсказок с помощью событий $root

Вы можете закрыть (скрыть) все открытые всплывающие подсказки, создав событие bv::hide::tooltip на $root:

this. $root.$emit('bv::hide::tooltip')

Чтобы закрыть конкретную всплывающую подсказку, передайте id элемента триггера или id всплывающей подсказки (если он был указан в объекте конфигурации) в качестве первого аргумента:

this.$root.$emit('bv::show::tooltip', 'my-trigger-button-id')

Чтобы открыть конкретную всплывающую подсказку, передайте id элемента триггера или id всплывающей подсказки (если он был указан в объекте конфигурации) в качестве первого аргумента при генерировании bv::show::tooltip события $root:

this.$root.$emit('bv::show::tooltip', 'my-trigger-button-id')

Чтобы открыть все всплывающие окна одновременно, опустите аргумент id при генерации события bv::show::tooltip.

Эти события работают как для версии компонента , так и для директивы всплывающей подсказки.

Обратите внимание, что элемент триггера должен существовать в DOM и быть в видимом состоянии, чтобы отображалась всплывающая подсказка.

Отключение и включение всплывающих подсказок с помощью событий $root

Вы можете отключить все открытые всплывающие подсказки, создав событие bv::disable::tooltip на $root:

this.$root.$emit('bv::disable::tooltip')

Чтобы отключить конкретную всплывающую подсказку, передайте id элемента триггера или id всплывающей подсказки (если он был указан в объекте конфигурации) в качестве первого аргумента:

this.$root.$emit('bv::disable::tooltip', 'my-trigger-button-id')

Чтобы включить конкретную всплывающую подсказку, передайте id элемента триггера или id всплывающей подсказки (если он был предоставлен в объекте конфигурации) в качестве первого аргумента при генерировании bv::enable::tooltip события $root:

this. $root.$emit('bv::enable::tooltip', 'my-trigger-button-id')

Чтобы включить все всплывающие окна одновременно, опустите аргумент id при генерации события bv::enable::tooltip.

Эти события работают как для версии компонента , так и для директивы всплывающей подсказки.

Обратите внимание, что элемент триггера должен существовать в DOM, чтобы всплывающая подсказка была включена или отключена.

Смотрите также

  • директива v-b-popover
  • компонент <b-tooltip>
  • компонент <b-popover>

Directive reference

Импорт отдельных директив

Вы можете импортировать отдельные директивы в свой проект с помощью следующих именованных экспортов:

Директива

Именованный экспорт

Путь импорта

v-b-tooltipVBTooltipbootstrap-vue

Пример:

import { VBTooltip } from 'bootstrap-vue'
// Note: Vue automatically prefixes the directive name with 'v-'
Vue. directive('b-tooltip', VBTooltip)

Импортировать как плагин Vue.js

Этот плагин включает в себя все перечисленные выше отдельные директивы.

Именованный экспорт

Путь импорта

VBTooltipPluginbootstrap-vue

Пример:

import { VBTooltipPlugin } from 'bootstrap-vue'
Vue.use(VBTooltipPlugin)

Подсказки W3.CSS

❮ Назад Далее ❯


Наведите курсор на предложения ниже:

Лондон (

9 миллионов жителей ) является столицей Англии.

Лондон

9 миллионов жителей является столицей Англии.

Классы всплывающих подсказок W3.CSS

W3.CSS предоставляет следующие классы всплывающих подсказок:

Класс Определяет
w3-подсказка Элемент всплывающей подсказки
w3-текст Текст всплывающей подсказки

Элемент всплывающей подсказки и текст всплывающей подсказки

Подсказки отображают текст (или другое содержимое) при наведении указателя мыши на элемент HTML.

Класс w3-tooltip определяет элемент, над которым следует наводить курсор (контейнер всплывающей подсказки).

Класс w3-text определяет текст всплывающей подсказки.

Наведите указатель мыши на предложение ниже:

Лондон ( 9 миллионов жителей ) — столица Англии.

Пример

Лондон
(9 миллионов жителей)
— столица Англии.

Попробуйте сами »


Подсказка как тег

Наведите указатель мыши на предложение ниже:

Лондон. 9 миллионов жителей является столицей Англии.

Пример

Лондон
9миллионов жителей
— столица Англии.

Попробуйте сами »



Подсказка к изображению

Наведите курсор на картинку, чтобы увидеть эффект:

Автомобиль — это колесный самоходный автомобиль, используемый для перевозки. В большинстве определений этого термина указывается, что автомобили обычно имеют четыре колеса. (Википедия)

Пример (текст перед картинкой)


 

Автомобиль — это…


  Car

Попробуйте сами »

Пример (текст после картинки)


  jpg» alt=»Автомобиль»>
 

Автомобиль — это…


Попробуйте сами »


Подсказка с абсолютным позиционированием

Если вы хотите, чтобы подсказка отображалась в абсолютном положении, расположите текст подсказки с помощью CSS:

Лондон 9 миллионов жителей является столицей Англии.

Пример

Лондон
class=»w3-text w3-tag»>9 миллионов жителей
— столица Англии.

Попробуйте сами »


Цветная подсказка

Если вам нужна цветная подсказка, используйте классы w3- :

Пример

9 миллионов жителей

Попробуйте сами »


Закругленная подсказка

Если вам нужен округлый подъемник, используйте W3- Раунд Классы:

Пример

9 миллионов жителей

Попробуйте »


Маленький инструмент

. Если вам нужна небольшая всплывающая подсказка, используйте класс w3-small :

Example

9 миллионов жителей

Попробуйте сами »


Крошечная подсказка

Если вам нужна крошечная подсказка, используйте w3-tiny class:

Example

9 миллионов жителей

Попробуйте сами »


Large Tooltip

большой классы:

Пример

9 миллионов жителей

Попробуйте сами »


Анимированная подсказка

Если вы хотите, чтобы подсказка исчезала, используйте w3 9Класс 0047:

Пример

9 миллионов жителей

Попробуйте сами »

❮ Предыдущая Следующий ❯


ВЫБОР ЦВЕТА



Лучшие учебники
Учебное пособие по HTML
Учебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3. CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery

Лучшие ссылки
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery

Примеры HTML

Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery


FORUM | О

W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.

Авторское право 1999-2023 по данным Refsnes. Все права защищены.
W3Schools работает на основе W3.CSS.

Пошаговое руководство по созданию всплывающих подсказок на чистом CSS | Юссуф Эль Азизи | Мы переехали на freeCodeCamp.org/news

Недавно я работал над коротким руководством по созданию простых всплывающих подсказок с использованием чистого CSS (без дополнительных элементов HTML или JavaScript). Позже я использовал эту технику в своем собственном проекте и придумал несколько приемов, чтобы ее улучшить.

Эта статья представляет собой пошаговое руководство, которое поможет вам понять эти приемы CSS, чтобы вы также могли создавать всплывающие подсказки на чистом CSS.

К концу этого поста вы будете знать, как добавить всплывающую подсказку к любому элементу, добавив простой атрибут.

Мне нужно было создать пользовательскую всплывающую подсказку для моего проекта.

Я начал с поиска в Google «Генератор всплывающих подсказок CSS». Я нашел довольно много генераторов. Их подход состоял в том, чтобы добавить диапазон с абсолютной позицией внутри элемента, для которого вы хотите получить всплывающую подсказку.

Но у меня уже был завершенный проект. Я не хотел возвращаться назад и добавлять все эти элементы span в свой проект. Это займет время и усложнит мой HTML. Должен быть лучший способ.

Наконец-то я нашел на YouTube замечательный туториал о всплывающих подсказках. Умный трюк, который он использовал, заключался в создании всплывающей подсказки с использованием селекторов CSS :: до и :: после . Вы можете посмотреть видео здесь.

Этот трюк был умным и чистым, но недостаточно общим.

В этой части я сделаю этот трюк более общим, и мы узнаем больше о некоторых свойствах CSS. Вот что мы в конечном итоге хотим сделать:

 

Не только это, мы также хотим иметь возможность легко указать положение всплывающей подсказки:

  

Во-первых, как упоминалось в видео, мы добавим к кнопке псевдоэлемент перед и после .

::after и ::before — это псевдоэлементы, которые позволяют вам вставлять содержимое на страницу из CSS до или после содержимого элемента. Они работают так:

 div::after { 
содержимое: «после»;
}
div::before {
содержимое: «до»;
}

Результат выглядит примерно так:

 

до

после

Шаг 1: мы добавим атрибут всплывающей подсказки вот так:

  

Нам нужны псевдоэлементы ::after и ::before . Это будет простой прямоугольник с содержимым всплывающей подсказки. Мы создаем простой прямоугольник с помощью CSS, добавляя границу вокруг пустого элемента, который мы создали с помощью содержание свойство.

Псевдоэлемент ::before используется для отображения содержимого всплывающей подсказки. Мы добавляем его со свойством , содержимым и извлекаем значение атрибута всплывающей подсказки. Значение для содержимого может быть строкой, значением атрибута элемента, как в нашем примере, или даже изображением с url(path/image.png) .

Чтобы это работало, позиция элемента кнопки должна быть относительной. Другими словами, положение всех элементов внутри кнопки зависит от положения самого элемента кнопки.

Мы также добавили несколько трюков с положением, чтобы сделать всплывающую подсказку в центре с помощью свойства преобразования, и вот результат.

Вот наш CSS:

Шаг 2: мы просто играем с псевдоэлементами ::before и ::after для создания позиции всплывающей подсказки. HTML-код нашей кнопки будет выглядеть следующим образом:

  

Положение всплывающей подсказки может быть: справа, слева, сверху или снизу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *