Зміна кольору підказки Bootstrap


126

Що я намагаюся зробити, це змінити підказку на червоний. Однак я також хочу мати кілька інших кольорів, тому я не хочу просто замінювати оригінальний колір підказки.

Як би я пішов робити це?



подивіться на цю відповідь: stackoverflow.com/a/38279489/3554107 . Для стилізації кожної стрілки спрямованості нам потрібно вибрати кожну стрілку за допомогою селектора атрибутів CSS, а потім стилізувати їх окремо.
vishnu

Спеціальні стилі для кожної підказки я щойно розмістив тут досить просте рішення ...
Джордж

Відповіді:


181

Ви можете використовувати такий спосіб:

<a href="#" data-toggle="tooltip" data-placement="bottom"
   title="" data-original-title="Tooltip on bottom"
   class="red-tooltip">Tooltip on bottom</a>

А в CSS:

.tooltip-arrow,
.red-tooltip + .tooltip > .tooltip-inner {background-color: #f00;}

jsFiddle


Moeen MH : Для останньої версії завантажувального пристрою вам може знадобитися це зробити, щоб позбутися чорної стрілки:

.red-tooltip + .tooltip.top > .tooltip-arrow {background-color: #f00;}

Використовуйте це для Bootstrap 4:

.bs-tooltip-auto[x-placement^=bottom] .arrow::before,
.bs-tooltip-bottom .arrow::before {
  border-bottom-color: #f00; /* Red */
}

Повний фрагмент:

$(function() {
  $('[data-toggle="tooltip"]').tooltip()
})
.tooltip-main {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  font-weight: 700;
  background: #f3f3f3;
  border: 1px solid #737373;
  color: #737373;
  margin: 4px 121px 0 5px;
  float: right;
  text-align: left !important;
}

.tooltip-qm {
  float: left;
  margin: -2px 0px 3px 4px;
  font-size: 12px;
}

.tooltip-inner {
  max-width: 236px !important;
  height: 76px;
  font-size: 12px;
  padding: 10px 15px 10px 20px;
  background: #FFFFFF;
  color: rgb(0, 0, 0, .7);
  border: 1px solid #737373;
  text-align: left;
}

.tooltip.show {
  opacity: 1;
}

.bs-tooltip-auto[x-placement^=bottom] .arrow::before,
.bs-tooltip-bottom .arrow::before {
  border-bottom-color: #f00;
  /* Red */
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<div class="tooltip-main" data-toggle="tooltip" data-placement="top" data-original-title="Hello world"><span class="tooltip-qm">?</span></div>
<style>
  .bs-tooltip-auto[x-placement^=bottom] .arrow::before,
  .bs-tooltip-bottom .arrow::before {
    border-bottom-color: #f00;
    /* Red */
  }
</style>


4
Однозначно ще чорна стрілка. Вам також потрібно змінити колір, використовуючи.red-tooltip + .tooltip > .tooltip-arrow {background-color: #f00;}
Fizzix

1
Гауд! Моє ліжко!!! Виправлено. @codesnooker не бачив, що ви згадуєте стрілку !!! Дуже прикро!!!
Praveen Kumar Purushothaman

4
З останньою версією завантажувального пристрою вам може знадобитися це зробити, щоб позбутися чорної стрілки: .red-tooltip + .tooltip.top > .tooltip-arrow {background-color: #f00;}
Moein

4
Це рішення добре, якщо залишити containerопцію підказки за замовчуванням. Однак якщо зробити container: "body"так, що підказка не буде обрізана як переповнення, це порушить селектор css.
Трохи

1
@PraveenKumar Ваша відповідь / загадка послужили мені цілі сьогодні ;-) У мене була подібна проблема, яку я не міг розібратися, тому я зрозумів, що буду "Google", як це було . Привіт
Funk Forty Niner

109

Запуск 2

Якщо ви також хочете змінити каре / стрілку, зробіть наступне:

.red-tooltip + .tooltip > .tooltip-inner {background-color: #f00;}
.red-tooltip + .tooltip > .tooltip-arrow {border-bottom-color: #f00;}

або

.red-tooltip + .tooltip > .tooltip-inner, .red-tooltip + .tooltip > .tooltip-arrow {background-color: #f00;}

jsFiddle: http://jsfiddle.net/technotarek/2htZe/

ОНОВЛЕННЯ: Bootstrap 3

Ви повинні конкретизувати напрямок підказки у Bootstrap 3. Наприклад:

.tooltip.top .tooltip-inner {
    background-color:red;
}
.tooltip.top .tooltip-arrow {
      border-top-color: red;
}

jsFiddle для всіх вказівок підказки за допомогою Bootstrap 3: http://jsfiddle.net/technotarek/L2rLE/


Загадка не працює, і я не бачу, як карета змінюється за допомогою цього коду.
Дон

@Don Посилання на github до css і js більше не працюють; оновлено для використання Bootstrap CDN (спадщина).
technoTarek

Нічого з цього не працювало для мене, але рішення Туєна це робить.
Тілліто

@technoTarek Існує проблема з лівим, правим та верхнім місцями розташування. перевірити відредагований jsFiddle
Anurag

@Anurag Ваша загадка не використовує надане нами рішення. Ось моє рішення для всіх напрямків, що використовують ваш html та js, але мій css: jsfiddle.net/technotarek/nhvvqz4v
technoTarek

61

Єдиний спосіб роботи для мене:

$(document).ready(function() {
  //initializing tooltip
  $('[data-toggle="tooltip"]').tooltip();
});
.tooltip-inner {
  background-color: #00acd6 !important;
  /*!important is not necessary if you place custom.css at the end of your css calls. For the purpose of this demo, it seems to be required in SO snippet*/
  color: #fff;
}

.tooltip.top .tooltip-arrow {
  border-top-color: #00acd6;
}

.tooltip.right .tooltip-arrow {
  border-right-color: #00acd6;
}

.tooltip.bottom .tooltip-arrow {
  border-bottom-color: #00acd6;
}

.tooltip.left .tooltip-arrow {
  border-left-color: #00acd6;
}
<!--jQuery-->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<!--tether-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<!--Bootstrap-->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>

<!--Tooltip Example-->
<div style="padding:50px;">
  <span class="fa-stack fa-lg" data-toggle="tooltip" data-placement="right" title="custom colored tooltip">hover over me
</span>
</div>


Єдине рішення, яке працювало для мене на всіх місцях підказки :). Дякую!
Анураг

Повинна була прийняти відповідь. Це допоможе читачеві, якщо ви можете додати jsFiddle.
Анураг

12

Для bootstrap4 я використовував код:

.tooltip-inner {
  background-color: #color !important;
  color: #color ;
}
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
  border-top-color: #color !important;
}

.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
  border-right-color: #color !important;
}


.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
  border-bottom-color: #color !important;
}


.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
  border-left-color: #color !important;
}


11

Ось код підказки в boostrap ...

.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  white-space: normal;
  filter: alpha(opacity=0);
  opacity: 0;

  line-break: auto;
}
.tooltip.in {
  filter: alpha(opacity=90);
  opacity: .9;
}
.tooltip.top {
  padding: 5px 0;
  margin-top: -3px;
}
.tooltip.right {
  padding: 0 5px;
  margin-left: 3px;
}
.tooltip.bottom {
  padding: 5px 0;
  margin-top: 3px;
}
.tooltip.left {
  padding: 0 5px;
  margin-left: -3px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 4px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  right: 5px;
  bottom: 0;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}

10

Для кольору стрілки ви можете скористатися цим:

.tooltip .tooltip-arrow {border-top: 5px solid red !important;}

7

Важливо зазначити, що з Bootstrap 4 ви можете налаштувати ці стилі безпосередньо у вашому файлі змінних Bootstrap Sass, тому у _variables.scss у вас є такі параметри:

//== Tooltips
//
//##

// ** Tooltip max width
$tooltip-max-width:           200px !default;
// ** Tooltip text color
$tooltip-color:               #fff !default;
// ** Tooltip background color
$tooltip-bg:                  #000 !default;
$tooltip-opacity:             .9 !default;

// ** Tooltip arrow width
$tooltip-arrow-width:         5px !default;
// ** Tooltip arrow color
$tooltip-arrow-color:         $tooltip-bg !default;

Дивіться тут: http://v4-alpha.getbootstrap.com/getting-started/options/

Найкраще працювати в Sass і компілювати під час роботи з інструментами для збирання Grunt або Gulp.


Ви також можете встановити колір, використовуючи завантажувальний інструмент 3 за допомогою $ tooltip-color, $ tooltip-bg та $ tooltip-arrow-color
Woraphot Chokratanasombat

6

моє виправлення jQuery:

HTML:

   <a href="#" data-toggle="tooltip" data-placement="right" data-original-title="some text">
       <span class="glyphicon glyphicon-question-sign"></span>
   </a>

jQuery:

$('[data-toggle="tooltip"]').hover(function(){
    $('.tooltip-inner').css('min-width', '400px');
    $('.tooltip-inner').css('color', 'red');
});

4

Ви можете використовувати це для вирішення своєї проблеми. Я перевірив це у своєму проекті, і він прекрасно працює.

<a class="btn btn-sm btn-success media-tooltip" href="#" data-toggle="tooltip" data-placement="bottom" title="Download Now">Download Now</a>
    .media-tooltip + .tooltip .tooltip-inner {
        font-size: 14px; 
        font-weight: 700;
        color: rgb( 37, 207, 187 ); 
        border-width: 1px;
        border-color: rgb( 37, 207, 187 );
        border-style: solid;
        background-color: rgb( 219, 242, 239 );
        padding: 10px;
        border-radius: 0;
    } 
    .media-tooltip + .tooltip > .tooltip-arrow{display: none;}
    .media-tooltip + .tooltip .tooltip-inner:after, .media-tooltip + .tooltip .tooltip-inner:before {
         bottom: 89%;
         left: 50%;
         border: solid transparent;
         content: " ";
         height: 0;
         width: 0;
         position: absolute;
         pointer-events: none;
    }

    .media-tooltip + .tooltip .tooltip-inner:after {
        border-color: rgba(219, 242, 239, 0);
        border-bottom-color: #dbf2ef;
        border-width: 10px;
        margin-left: -10px;
    }
    .media-tooltip + .tooltip .tooltip-inner:before {
        border-color: rgba(37, 207, 187, 0);
        border-bottom-color: #25cfbb;
        border-width: 11px;
        margin-left: -11px;
    }

4

На це вже відповіли правильно, але я думаю, що я повинен також дати свою думку. Як каже cozen, це межа, і для того, щоб він працював, ви повинні вказати класи, щоб це відформатувати так, як це визначає bootstrap. Отже, ви можете це зробити

.tooltip .tooltip-inner {background-color: #00a8c4; color: black;} 
.tooltip.top .tooltip-arrow {border-top-color: #00a8c4;}

або ви можете зробити наступний, лише для підказки-стрілки, але ви повинні додати!

.tooltip-arrow {border-top-color: #00a8c4!important;}

4

Це працювало для мене.

.tooltip .arrow:before {
    border-top-color: #008ec3 !important;
}

.tooltip .tooltip-inner {
    background-color: #008ec3;
}

1
Жодне з інших рішень для мене не працювало. Але ваше рішення спрацювало на мене. Дякую! :)))
Аспін Лім

3

Невикладені вище відповіді справно справляються у випадку container: 'body', і таке рішення робить:

// Assign custom CSS class after the tooltip template has been added to the DOM
$(document).on('inserted.bs.tooltip', function(e) {
    var tooltip = $(e.target).data('bs.tooltip');
    tooltip.$tip.addClass($(e.target).data('tooltip-custom-class'));
});

І простий фрагмент CSS:

.tooltip.tooltip-danger > .tooltip-inner {
    background-color: #d9534f;
}

.tooltip.tooltip-danger.left > .tooltip-arrow {
    border-left-color: #d9534f;
}

Тепер ви можете запустити підказку як звичайну, проходячи спеціальний клас CSS через data-tooltip-custom-classатрибут:

<span class="js-tooltip">Hover me totally</span>

<script>
$('.js-tooltip')
    .data('tooltip-custom-class', 'tooltip-danger')
    .tooltip(/*your options*/)
;
</script>

3

Запуск 4

Під час використання BootStrap 4 підказка додається в нижній частині тега body. Якщо підказка є дочірнім іншим тегом, немає можливості націлити підказку за допомогою css. Єдиний спосіб, який я виявив, що працює - це використання події insert.bs.tooltip та додавання класу до внутрішнього ключа та стрілки. Тоді ви можете орієнтуватися на клас у css.

// initialize tooltips
$('[data-toggle="tooltip"]').tooltip(); 

// Add the classes to the toolip when it is created
$('[data-toggle="tooltip"]').on('inserted.bs.tooltip',function () {
    var thisClass = $(this).attr("class");
    $('.tooltip-inner').addClass(thisClass);
    $('.arrow').addClass(thisClass + "-arrow");
});
/* style the tooltip box and arrow based on your class*/
.bs-tooltip-left .redTip {
    background-color: red !important
}
.bs-tooltip-left .redTip-arrow::before {
    border-left-color: red !important
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

<p>Show a red tooltip <a href="#" class="redTip" data-toggle="tooltip" data-placement="left" title="You Did It!">Hover over me</a></p>


Це робоче рішення для Bootstrap 4. Порада: Якщо ви, як і я, використовуєте посібник для запуску підказки (тобто завжди підказки видно), використовуйте будь-який інший атрибут html, оскільки використання "data-toggle" викликає показ / приховування подія з наведенням миші.
mizerablebr

2

Ви можете використовувати швидкий підхід, згаданий в інших відповідях, якщо ви просто хочете змінити колір. Однак якщо ви використовуєте Bootstrap, ви повинні використовувати теми, щоб вигляд і відчуття були узгодженими. На жаль, немає вбудованої підтримки тем для Bootstrap, тому я написав невеликий фрагмент CSS, який це робить. Ви в основному отримуєте tooltip-infoі tooltip-warningт.д. класи, які ви можете додати до елемента, щоб застосувати тему.

Ви можете знайти цей код разом із загадкою, прикладами та додатковими поясненнями у цій відповіді: https://stackoverflow.com/a/20880312/207661


2

Ви можете використовувати такий спосіб:

А в CSS:

.tooltip-arrow,
.red-tooltip + .tooltip > .tooltip-inner {background-color: #000;}

2

Стрілка - це межа.
Вам потрібно змінити для кожної стрілки відповідний колір.

.tooltip.top .tooltip-arrow {
  border-top-color: @color;
}
.tooltip.top-left .tooltip-arrow {
  border-top-color: @color;
}
.tooltip.top-right .tooltip-arrow {
  border-top-color:@color;
}
.tooltip.right .tooltip-arrow {
  border-right-color: @color;
}
.tooltip.left .tooltip-arrow {
  border-left-color: @color;
}
.tooltip.bottom .tooltip-arrow {
  border-bottom-color: @color;
}
.tooltip.bottom-left .tooltip-arrow {
  border-bottom-color: @color;
}
.tooltip.bottom-right .tooltip-arrow {
  border-bottom-color: @color;
}
.tooltip > .tooltip-inner {
  background-color: @color;
  font-size: @font-size-small;
}

Однак якщо я хочу додати клас для зміни кольору (як, наприклад, у скрипці з '.class + .tooltip ...', він не працює (завантажувальний 3).
Якщо хтось знає, як з цим впоратися?!?


2

Запуск 3 + SASS для нижньої підказки:

.red-tooltip {
    & + .tooltip.bottom {
          .tooltip-inner{background-color:$red;}
          .tooltip-arrow {border-bottom-color: $red;}
    }
}

2

Для стрілки спочатку підтвердьте, який напрямок ви використовуєте. Наприклад, я використовую leftнапрямок, тоді воно повинно бути

.tooltip .tooltip-inner {
    background-color:#2fa5fb;
}
.tooltip.left > .tooltip-arrow {
   border-left-color: #2fa5fb;
}

2

Здається, у Bootstrap 4 змінилися

Якщо ви хочете змінити колір нижньої підказки на червоний, просто додайте це до свого CSS:

.tooltip-inner {
    background-color: #f00;
}

.bs-tooltip-bottom .arrow::before {
    border-bottom-color: #f00;
}

1

Це змінить колір підказки у bootstrap4, ви можете використовувати знизу, ліворуч, праворуч, щоб додати CSS для відповідного замість top у .bs-tooltip-top

.tooltip-inner {
background-color: #00acd6 !important;
color: #fff;
}
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] 
.arrow::before {
border-top-color: #00acd6;
}

bootstrap 4 працює, будь ласка, перевірте розміщення CSS.
Маніш

поясніть свою відповідь трохи. це може допомогти іншим
кодер

1

Ось SCSS-код (складений css нижче), який допоможе вам легко керувати кольорами підказки, включаючи стрілку (також рамка та фон для стрілки):

Примітка. Для того, щоб правила CSS набули чинності, вам може знадобитися додати "важливо" в деяких місцях. Примітка №2: стиль тут працює лише для макетів підказок TOP і BOTTOM. Не соромтеся додати ще кілька стилів (& .bs-tooltip-left, & .bs-tooltip-right тощо)

SCSS :

$tt-text-color: lime;
$tt-border-color: lime;
$tt-bg-color: black;
$arrow-border-color: lime;
$arrow-bg-color: black;

.tooltip {
  .tooltip-inner {
    background: $tt-bg-color;
    color: $tt-text-color;
    border: 2px solid $tt-border-color;
  }
  .arrow {
    width: 11px;
    height: 11px;
    border: 2px solid $arrow-border-color;
    bottom: 1px;
    &:before {
      width: 11px;
      height: 11px;
      background: $arrow-bg-color;
      border: 0;
    }
  }
  &.bs-tooltip-top {
    .arrow {
      transform: rotate(-135deg);
    }
  }
  &.bs-tooltip-bottom {
    .arrow {
      transform: rotate(135deg);
      top: 2px;
    }
  }
}

CSS :

.tooltip .tooltip-inner {
  background: black;
  color: lime;
  border: 2px solid lime;
}
.tooltip .arrow {
  width: 11px;
  height: 11px;
  border: 2px solid lime;
  bottom: 1px;
}
.tooltip .arrow:before {
  width: 11px;
  height: 11px;
  background: black;
  border: 0;
}
.tooltip.bs-tooltip-top .arrow {
  transform: rotate(-135deg);
}
.tooltip.bs-tooltip-bottom .arrow {
  transform: rotate(135deg);
  top: 2px;
}

Живий приклад:

jQuery(document).ready(function(){
 $('a').tooltip();
});
.tooltip .tooltip-inner {
  background: black;
  color: lime;
  border: 2px solid lime;
}
.tooltip .arrow {
  width: 11px!important;
  height: 11px!important;
  border: 2px solid lime;
  bottom: 1px;
}
.tooltip .arrow:before {
  width: 11px;
  height: 11px;
  background: black;
  border: 0;
}
.tooltip.bs-tooltip-top .arrow {
  transform: rotate(-135deg);
}
.tooltip.bs-tooltip-bottom .arrow {
  transform: rotate(135deg);
  top: 2px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.bundle.min.js"></script>

<div class="text-center py-4">
<a class="cn-box big cn-copy" data-toggle="tooltip" data-placement="bottom" title="Hello There">
  try me
</a>
</div>


0

Єдиний спосіб роботи для мене:

.tooltip.bottom .tooltip-arrow{
    border-bottom-color:#F00;
}

0

$(document).ready(function(){
  $('.tooltips-elements')
    .tooltip()
    .each(function() {
        var color = $(this).data('color');
        $(this).hover(function(){
        	var aria = $(this).attr('aria-describedby');
        	$('#' + aria).find('.tooltip-inner').css({
	        	"background": color,
	        	"color" : "#333",
	        	"margin-left" : "10px",
	        	"font-weight" : "700",
	        	"font-family" : "Open Sans",
	        	"font-size" : "13px",
	        });
	        $('#' + aria).find('.tooltip-arrow').css({
	        	"border-bottom-color" : color,
	        });
        });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>


<a href="#" class="tooltips-elements" data-toggle="tooltip"  data-placement="bottom" data-original-title="Here comes the tooltip" data-color="red">Hover me</a>

Перевірте це, можливо, це може вам допомогти. Ви можете мати кілька кольорових підказок.


0

Ми використовуємо bootstrap 3.0 на нашому веб-сайті, але жоден з перерахованих вище кроків не працював над оновленням стилів підказки. Але я знайшов рішення, використовуючи jQueryUI стиль замість цього

https://jqueryui.com/tooltip/#custom-style

CSS

  .ui-tooltip, .arrow:after {
    background: black;
    border: 2px solid white;
  }
  .ui-tooltip {
    padding: 10px 20px;
    color: white;
    border-radius: 20px;
    font: bold 14px "Helvetica Neue", Sans-Serif;
    text-transform: uppercase;
    box-shadow: 0 0 7px black;
  }

HTML

<div class="qu_help" data-toggle="tooltip" title="Some Random Title"> 
   <span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
</div>

Я додаю цю відповідь у випадку, якщо хтось ще опинився в подібній ситуації, як я.


0

Цей простий метод працює для мене, коли я хочу змінити колір фону підказки для завантаження:

$(function(){
    //$('.tooltips.red-tooltip').tooltip().data('bs.tooltip').tip().addClass('red-tooltip');
    $('.tooltips.red-tooltip').tooltip().data('tooltip').tip().addClass('red-tooltip');
});
.red-tooltip.tooltip.tooltip.bottom .tooltip-arrow, 
.red-tooltip.tooltip.tooltip.bottom-left .tooltip-arrow,
.red-tooltip.tooltip.tooltip.bottom-right .tooltip-arrow{border-bottom-color: red;}
.red-tooltip.tooltip.top .tooltip-arrow {border-top-color: red;}
.red-tooltip.tooltip.left .tooltip-arrow {border-left-color: red;}
.red-tooltip.tooltip.right .tooltip-arrow {border-right-color: red;}
.red-tooltip.tooltip > .tooltip-inner{background-color:red;}
<link href="http://getbootstrap.com/2.3.2/assets/css/bootstrap.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="http://getbootstrap.com/2.3.2/assets/js/bootstrap-tooltip.js"></script>

<a href="#" data-toggle="tooltip" data-placement="bottom"
   title="" data-original-title="Made by @Ram"
   class="tooltips red-tooltip">My link with red tooltip</a>

Примітка A:

Якщо js код включає, що .data('tooltip')не працює для вас, будь ласка, прокоментуйте його рядок, а код відміни js включати .data('bs-tooltip').

Примітка B:

Якщо ваша функція підказки завантажувача додає підказку до кінця тіла (не відразу після елемента) , моє рішення працює добре, але деякі інші відповіді на цих сторінках не працюють, як @Praveen Kumar і @technoTarek у цьому сценарії.

Примітка C:

Ця підтримка кодів tooltip arrowкольору у всіх розміщених підказки ( top, bottom, left, right).


0

Якщо ви хочете використовувати jQuery, ви можете спробувати це:

$('[data-toggle="tooltip"]').on('shown.bs.tooltip', function(){
    $('.tooltip.bottom .tooltip-arrow').css('border-bottom-color', 'red');
    $('.tooltip-inner').css('background-color', 'red');
});

0

Для Bootstrap 4 з залежністю від tether.js класи .tooltip-стрілки були замінені на .tooltip.bs-tether-element-attach- [позиція] {...}

Ось як я змінив колір і потовстив нижню стрілку. Для кожного пікселя, доданого до ширини рамки, я повинен був відняти піксель із положення "знизу".

.tooltip.bs-tether-element-attached-bottom .tooltip-inner::before, .tooltip.tooltip-bottom .tooltip-inner::before {

    border-top-color: #d19b3d !important;
    border-width: 10px 10px 0;
    bottom: -5px;
}

Вам доведеться налаштувати інші позиції, тобто для .tooltip.bs-прив’язаного елемента-ліворуч, ви будете коригувати кордон праворуч, а також переміщувати, якщо збільшувати ширину межі, віднімаючи пікселі від "ліворуч" тощо.


Я знехтував згадати ще один аспект: Якщо збільшувати ширину межі елемента прив'язки, також потрібно змінити положення назад до центру, використовуючи стиль поля, тому для зміни 5px за кордоном на 10px кордону мені довелося також змінити типову поле margin-left: -5px; до краю вліво: -10px;
deusoz

0

Відповідь Олега https://stackoverflow.com/a/42994192/9921853 найкраща там. Це дозволяє застосовувати підказки стилів до динамічно створених елементів. Однак це не працює для Bootstrap 4. Його слід трохи змінити:

Запуск 3:

$(document).on('inserted.bs.tooltip', function(e) {
    var tooltip = $(e.target).data('bs.tooltip');
    tooltip.$tip.addClass($(e.target).data('tooltip-custom-class'));
});

Приклад: https://www.bootply.com/UORR04ncTP

Запуск 4:

$(document).on('inserted.bs.tooltip', function(e) {
    var tooltip = $(e.target).data('bs.tooltip');
    $(tooltip.tip).addClass($(e.target).data('tooltip-custom-class'));
});

Приклад: https://jsfiddle.net/nsmcan/naq530hx

Повне рішення (Bootstrap 3)

JS

$(document).on('inserted.bs.tooltip', function(e) {
    var tooltip = $(e.target).data('bs.tooltip');
    tooltip.$tip.addClass($(e.target).data('tooltip-custom-classes'));
});

$('body').tooltip({ 
    selector: "[title]", 
    html: true
});

HTML

<h1>Test tooltip styling</h1>
<div><span title="Long-long-long tooltip doesn't fit the single line">Hover over me 1</span></div>
<div><span data-tooltip-custom-classes="tooltip-left" data-container="body" title="Example (left aligned):<br>Tooltip doesn't fit the single line, and is not a sibling">Hover over me 2</span></div>
<div><span class="text-danger" data-tooltip-custom-classes="tooltip-large tooltip-left tooltip-danger" title="Example (left aligned):<br>This long text we want to have in the single line">Hover over me 3</span></div>

CSS

.tooltip.tooltip-large > .tooltip-inner {
    max-width: 300px;
}
.tooltip.tooltip-left > .tooltip-inner {
    text-align: left;
}

.tooltip.top.tooltip-danger > .tooltip-arrow {
    border-top-color: #d9534f;
}
.tooltip.top-left.tooltip-danger > .tooltip-arrow {
    border-top-color: #d9534f;
}
.tooltip.top-right.tooltip-danger > .tooltip-arrow {
    border-top-color:#d9534f;
}
.tooltip.right.tooltip-danger > .tooltip-arrow {
    border-right-color: #d9534f;
}
.tooltip.left.tooltip-danger > .tooltip-arrow {
    border-left-color: #d9534f;
}
.tooltip.bottom.tooltip-danger > .tooltip-arrow {
    border-bottom-color: #d9534f;
}
.tooltip.bottom-left.tooltip-danger > .tooltip-arrow {
    border-bottom-color: #d9534f;
}
.tooltip.bottom-right.tooltip-danger > .tooltip-arrow {
    border-bottom-color: #d9534f;
}
.tooltip.tooltip-danger > .tooltip-inner {
    background-color: #d9534f;
}

0

для версії Bootstrap 4 через CSS:

якщо ви хочете змінити колір фону повітряної кулі :

/* change style balloon */
.tooltip-inner {
    background-color: green !important;
    color: #fff;
}

якщо ви хочете змінити стрілку, коли вона з’являється в нижньому положенні :

/* change style arrow */
.bs-tooltip-auto[x-placement^=bottom] .arrow::before, .bs-tooltip-bottom .arrow::before {
    border-bottom-color: #f00;
}

Сподіваюся, вам допоможуть


0

Якщо у вас є проект BS4, якщо вам вдасться скласти код SASS, ви можете скористатися створенням міксину для управління кольоровою схемою підказки з будь-якого напрямку.

Переваги такого підходу:

  • Вам не потрібно додавати додаткові javaScript / jQuery для чогось, що передбачає стилізацію.
  • Ви використовуєте SASS, щоб динамічно обробляти брендинг для вас.
  • Ви можете легко керувати, які підказки мають колір (и) та напрямок (и).

Ось один із багатьох способів реалізувати це:

Створіть свій оригінальний міксин:

  • Надайте змінну для кольору
  • Встановіть 2 параметри (один для назви спеціального класу підказки, а другий для кольору). Я також додаю значення за замовчуванням для цих параметрів (необов’язково).
  • Створіть список і петлю над ним, щоб охопити всі 4 можливі напрямки

    //define a color
    $m-color-blue: #004c97;
    
    //create a mixin with parameters and default value
    @mixin m-tooltip-color-direction($name:'.mtootltip', $color:$m-color-blue) {
    
    //reference your custom class name
    #{$name} {
        .tooltip-inner {
            background-color: $color;
        }
    
        //create a list of possible directions
        $directions: top bottom left right;
    
        //loop through the list
        @each $direction in $directions {
            &.bs-tooltip-#{$direction} .arrow:before,
             .bs-tooltip-auto[x-placement^="$direction"] .arrow:before {
                border-#{$direction}-color: $color !important;
            }
         }
      }
    }


Зателефонуйте своєму міксингу (налаштуйте назву та колір класу)

  • У головному .scss-файлі викликайте міксин так:

    @include m-tooltip-color-direction('.mtooltip', $m-color-blue);


Встановіть підказку BS4 у своєму макеті (регулюйте напрямок)

  • Нарешті, додайте підказку BS4 до своєї верстки та надайте їй спеціальний клас для гнучкості. Цей ресурс BS4 говорить про використання шаблону як опції. Ми будемо використовувати це для додавання нашого власного класу.

  • Наступний приклад додає підказку на значку значка інформації:

     <span class="badge badge-pill badge-primary" data-toggle="tooltip" data-placement="right" data-html="true" data-template="<div class='tooltip mtooltip' role='tooltip'><div class='arrow'></div><div class='tooltip-inner'></div></div>" title="<h1 class='text-white'>Tooltip</h1> on bottom">i</span>


За допомогою цього налаштування ви можете налаштувати назву класу, колір та напрямок підказки, не торкаючись оригінального вмісту . Як здорово це :)

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.