htmlcsstwitter-bootstrap

Change Bootstrap tooltip color


What I'm trying to do is change the tooltip color to red. However, I also want to have multiple other colors so I don't simply want to replace the original tooltip's color.

How would I go about doing this?


Solution

  • You can use this way:

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

    And in the CSS:

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

    jsFiddle


    Moeen MH: With the most recent version of bootstrap, you may need to do this in order to get rid of black arrow:

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

    Use this for Bootstrap 4:

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

    Full Snippet:

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