Cambia il colore del tooltip di Bootstrap


126

Quello che sto cercando di fare è cambiare il colore della descrizione comando in rosso. Tuttavia, voglio anche avere più altri colori, quindi non voglio semplicemente sostituire il colore del suggerimento originale.

Come potrei fare questo?



guarda questa risposta: stackoverflow.com/a/38279489/3554107 . Per applicare lo stile a ciascuna freccia direzionale, dobbiamo selezionare ciascuna freccia utilizzando il selettore di attributi CSS e quindi definirle individualmente.
vishnu

Stili personalizzati per ogni descrizione comando Ho appena pubblicato una soluzione piuttosto semplice qui ...
George

Risposte:


181

Puoi usare in questo modo:

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

E nel CSS:

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

jsFiddle


Moeen MH : Con la versione più recente di bootstrap, potrebbe essere necessario farlo per eliminare la freccia nera:

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

Usa questo per Bootstrap 4:

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

Snippet completo:

$(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
Sicuramente ancora una freccia nera. Devi anche cambiare il colore usando.red-tooltip + .tooltip > .tooltip-arrow {background-color: #f00;}
Fizzix

1
Gawd! Colpa mia!!! Fisso. @codesnooker non ha visto che stavi menzionando la freccia !!! Veramente dispiaciuto!!!
Praveen Kumar Purushothaman

4
Con la versione più recente di bootstrap, potrebbe essere necessario farlo per sbarazzarsi della freccia nera: .red-tooltip + .tooltip.top > .tooltip-arrow {background-color: #f00;}
Moein

4
Questa soluzione è utile se lasci l' containerimpostazione predefinita dell'opzione tooltip . Tuttavia, se fai in container: "body"modo che il tuo suggerimento non venga ritagliato come overflow, questo interromperà il selettore css.
Leggero

1
@PraveenKumar La tua risposta / violino mi ha servito oggi ;-) Ho avuto un problema simile che non riuscivo a capire, quindi ho pensato che avrei "Google", per così dire . Cheers
Funk Forty Niner

109

Bootstrap 2

Se vuoi cambiare anche il cursore / freccia, procedi come segue:

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

o

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

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

AGGIORNAMENTO: Bootstrap 3

Devi essere specifico per la direzione del suggerimento in Bootstrap 3. Ad esempio:

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

jsFiddle per tutte le indicazioni dei suggerimenti utilizzando Bootstrap 3: http://jsfiddle.net/technotarek/L2rLE/


Il violino non funziona e non vedo il cursore cambiare con questo codice.
Don

@Don I ref GitHub per css e js non funzionavano più; aggiornato per utilizzare Bootstrap CDN (legacy).
technoTarek

Niente di tutto questo ha funzionato per me, ma la soluzione di Tuyen sì.
Tillito

@technoTarek Si è verificato un problema con i posizionamenti a sinistra, a destra e in alto. controlla il jsFiddle
Anurag

@Anurag Your fiddle non usa la soluzione che ho fornito. Ecco la mia soluzione per tutte le direzioni usando il tuo html e js, ma il mio css: jsfiddle.net/technotarek/nhvvqz4v
technoTarek

61

L'unico modo per lavorare per me:

$(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>


L'unica soluzione che ha funzionato per me su tutti i posizionamenti del tooltip :). Grazie!
Anurag

Avrebbe dovuto essere la risposta accettata. Aiuterebbe il lettore se potessi aggiungere un jsFiddle.
Anurag

12

Per bootstrap4 ho usato il codice:

.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

Ecco il codice del suggerimento in 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

Per il colore della freccia, puoi usare questo:

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

7

Importante da notare, a partire da Bootstrap 4 puoi personalizzare questi stili direttamente nel tuo file di variabili Bootstrap Sass, quindi in _variables.scss hai queste opzioni:

//== 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;

Vedi qui: http://v4-alpha.getbootstrap.com/getting-started/options/

Meglio lavorare in Sass e compilare man mano che procedi con gli strumenti di compilazione Grunt o Gulp.


Puoi anche impostare il colore usando bootstrap 3 con $ tooltip-color, $ tooltip-bg e $ tooltip-arrow-color
Woraphot Chokratanasombat

6

la mia correzione 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

Puoi usarlo per risolvere il tuo problema. L'ho controllato nel mio progetto e funziona bene.

<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

Questo è già stato risposto bene, ma penso che dovrei dare anche la mia opinione. Come dice Cozen, questo è un bordo, e perché funzioni devi specificare le classi per formattarlo nello stesso modo in cui lo specifica bootstrap. Quindi puoi farlo

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

oppure puoi fare il prossimo, solo per il tooltip-freccia ma devi aggiungere! important, in modo che sovrascriva il css di bootstrap

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

4

Questo ha funzionato per me.

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

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

1
Nessuna delle altre soluzioni ha funzionato per me. Ma la tua soluzione ha funzionato per me. Grazie! :)))
Aspyn Lim

3

Nessuna delle risposte precedenti funziona bene in caso di container: 'body', e la seguente soluzione funziona:

// 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'));
});

E un semplice snippet CSS:

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

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

Ora puoi iniziare il tuo suggerimento come al solito, passando la classe CSS personalizzata tramite l' data-tooltip-custom-classattributo:

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

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

3

BootStrap 4

Quando si utilizza BootStrap 4, la descrizione comando viene aggiunta alla parte inferiore del tag body. Se il tooltip è figlio di un altro tag, non c'è modo di indirizzare il tooltip utilizzando css. L'unico modo in cui ho scoperto che funziona è usare l'evento insert.bs.tooltip e aggiungere una classe al div interno e alla freccia. Quindi puoi scegliere come target la classe in 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>


Questa è la soluzione funzionante per Bootstrap 4. Suggerimento: se, come me, stai usando il manuale del trigger del tooltip (cioè il tooltip sempre visibile), usa qualsiasi altro attributo html, perché l'uso di 'data-toggle' attiverà lo show / hide evento con passaggio del mouse.
mizerablebr

2

Puoi usare l'approccio rapido menzionato in altre risposte se vuoi solo cambiare colore. Tuttavia, se stai usando Bootstrap, dovresti usare i temi in modo che l'aspetto grafico sia coerente. Sfortunatamente non esiste un supporto integrato per i temi per Bootstrap, quindi ho scritto un piccolo pezzo di CSS che lo fa. Fondamentalmente ottieni tooltip-info, tooltip-warningecc classi che puoi aggiungere all'elemento per applicare il tema.

Puoi trovare questo codice insieme a violino, esempi e ulteriori spiegazioni in questa risposta: https://stackoverflow.com/a/20880312/207661


2

Puoi usare in questo modo:

E nel CSS:

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

2

La freccia è un bordo.
È necessario modificare per ogni freccia il colore corrispondente.

.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;
}

Tuttavia se voglio aggiungere una classe per cambiare il colore (come nel violino con '.class + .tooltip ...' non funziona (bootstrap 3)
Se qualcuno sa come gestirlo?!?


2

Bootstrap 3 + SASS per descrizione comando inferiore :

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

2

Per la freccia, prima conferma la direzione che stai utilizzando. Ad esempio, sto usando la leftdirezione, quindi dovrebbe essere

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

2

Sembra essere cambiato in Bootstrap 4

Se vuoi cambiare il colore di un suggerimento posizionato in basso in rosso, aggiungilo al tuo CSS:

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

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

1

Cambierà il colore del tooltip in bootstrap4 che puoi usare in basso, a sinistra, a destra per aggiungere CSS per il rispettivo al posto di top in .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 funziona, controlla il posizionamento dei CSS.
Manish

spiega un po 'la tua risposta. potrebbe aiutare gli altri
codificatore

1

Ecco un codice SCSS (compilato css di seguito) che ti aiuterà a controllare facilmente i colori del suggerimento, inclusa la freccia (bordo e sfondo anche per la freccia):

Nota: potrebbe essere necessario aggiungere "importante" in alcuni punti affinché le regole CSS abbiano effetto. Nota n. 2: lo stile qui funziona solo per i layout di tooltip TOP e BOTTOM. Sentiti libero di aggiungere un po 'di stile in più (& .bs-tooltip-left, & .bs-tooltip-right, ecc.)

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;
}

Esempio dal vivo:

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

L'unico modo per lavorare per me:

.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>

Controlla questo forse ti può aiutare. Puoi avere più colori delle descrizioni comandi.


0

Stiamo usando bootstrap 3.0 sul nostro sito web, ma nessuno dei passaggi precedenti ha funzionato per aggiornare lo stile del tooltip. Ma ho trovato una soluzione usando invece lo stile 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>

Aggiungo questa risposta nel caso in cui qualcun altro si trovi in ​​una situazione simile a me.


0

Questo semplice metodo funziona per me quando voglio cambiare il colore di sfondo dei suggerimenti di bootstrap:

$(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>

Nota A:

Se il js codice include .data('tooltip')non funziona per te, commenta la sua riga e rimuovi il commento da js include .data('bs-tooltip').

Nota B:

Se la tua funzione tooltip di bootstrap aggiunge un tooltip alla fine del corpo (non subito dopo l'elemento) , la mia soluzione funziona ancora bene ma alcune altre risposte in queste pagine non funzionano come @Praveen Kumar e @technoTarek in questo scenario.

Nota C:

Questo codici supporto tooltip arrowdel colore in tutti i posizionamenti del tooltip ( top, bottom, left, right).


0

Se vuoi usare jQuery puoi provare questo:

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

0

Per Bootstrap 4 con dipendenza da tether.js le classi .tooltip-arrow sono state sostituite con .tooltip.bs-tether-element-attach- [position] {...}

Ecco come ho cambiato colore e la freccia inferiore ispessita. Per ogni pixel aggiunto alla larghezza del bordo, ho dovuto sottrarre un pixel dalla posizione "inferiore".

.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;
}

Dovrai regolare per altre posizioni, ad esempio per .tooltip.bs-tether-element-attach-left dovresti regolare border-right, e riposizionare se alzi la larghezza del bordo sottraendo pixel da "left", ecc.


Ho trascurato di menzionare un altro aspetto: se si aumenta la larghezza del bordo dell'elemento tether, è necessario anche riposizionarlo al centro usando lo stile del margine, quindi per passare dal bordo predefinito 5px al bordo 10px ho dovuto cambiare anche il margine sinistro predefinito: -5px; al margine sinistro: -10px;
deusoz

0

La risposta di Oleg https://stackoverflow.com/a/42994192/9921853 è la migliore. Permette di applicare gli stili di tooltip agli elementi creati dinamicamente. Tuttavia non funziona per Bootstrap 4. Dovrebbe essere leggermente modificato:

Bootstrap 3:

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

Esempio: https://www.bootply.com/UORR04ncTP

Bootstrap 4:

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

Esempio: https://jsfiddle.net/nsmcan/naq530hx

Soluzione completa (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

per la versione Bootstrap 4 tramite CSS:

se vuoi cambiare il colore di sfondo del fumetto :

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

se vuoi cambiare la freccia quando appare in basso :

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

Spero di aiutarti


0

All'interno del tuo progetto BS4, se sei in grado di compilare il codice SASS, puoi trarre vantaggio dalla creazione di un mixin per gestire lo schema dei colori dei suggerimenti da qualsiasi direzione.

Vantaggi di questo approccio:

  • Non è necessario aggiungere ulteriore javaScript / jQuery per qualcosa che coinvolge lo stile.
  • Sfrutta SASS per gestire dinamicamente il marchio per te.
  • È possibile controllare facilmente quali suggerimenti hanno di che colore (i) e direzione (i).

Ecco uno dei tanti modi in cui puoi implementarlo:

Crea il tuo mixin originale:

  • Fornisci una variabile per un colore
  • Imposta 2 parametri (uno per il nome della classe personalizzata del tuo suggerimento e l'altro per il colore). Aggiungo anche valori predefiniti per questi parametri (opzionale).
  • Crea un elenco e passaci sopra per coprire tutte e 4 le possibili direzioni

    //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;
            }
         }
      }
    }


Chiama il tuo mixin (regola il nome e il colore della classe)

  • All'interno del tuo file .scss principale chiama il tuo mixin in questo modo:

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


Imposta il tuo Tooltip BS4 nel tuo layout (regola la direzione)

  • Infine, aggiungi un suggerimento BS4 al tuo layout e dagli una classe personalizzata per la flessibilità. Questa risorsa BS4 parla dell'utilizzo del modello come opzione. Lo useremo per aggiungere la nostra classe personalizzata.

  • L'esempio seguente aggiunge una descrizione comando su un badge dell'icona delle informazioni:

     <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>


Con questa configurazione puoi regolare il nome della classe, il colore e la direzione del suggerimento senza toccare il mixin originale . Quant'è fico :)

Spero che questo ti aiuti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.