Thay đổi màu sắc công cụ Bootstrap


125

Những gì tôi đang cố gắng làm là thay đổi màu của chú giải công cụ thành màu đỏ. Tuy nhiên, tôi cũng muốn có nhiều màu khác vì vậy tôi không chỉ muốn thay thế màu của tooltip ban đầu.

Tôi sẽ đi đâu để tới đó?



nhìn vào câu trả lời này: stackoverflow.com/a/38279361/3554107 . Để tạo kiểu cho mỗi mũi tên định hướng, chúng ta phải chọn từng mũi tên bằng cách sử dụng bộ chọn thuộc tính CSS và sau đó tạo kiểu riêng cho chúng.
vishnu

Câu trả lời:


179

Bạn có thể sử dụng cách này:

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

Và trong CSS:

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

jsFiddle


Moeen MH : Với phiên bản bootstrap mới nhất, bạn có thể cần phải làm điều này để thoát khỏi mũi tên đen:

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

Sử dụng cái này cho Bootstrap 4:

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

Đoạn trích đầy đủ:

$(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
Chắc chắn vẫn là một mũi tên đen. Bạn cũng cần thay đổi màu bằng cách sử dụng.red-tooltip + .tooltip > .tooltip-arrow {background-color: #f00;}
Fizzix 10/03/2015

1
Yêu tinh! Lỗi của tôi!!! Đã sửa. @codesnooker không thấy rằng bạn đang đề cập đến mũi tên !!! Thật sự xin lỗi!!!
Praveen Kumar Purushothaman

4
Với phiên bản bootstrap mới nhất, bạn có thể cần phải làm điều này để thoát khỏi mũi tên đen: .red-tooltip + .tooltip.top > .tooltip-arrow {background-color: #f00;}
Moein

4
Giải pháp này là tốt nếu bạn để containermặc định tùy chọn tooltip . Tuy nhiên, nếu bạn thực hiện container: "body"sao cho chú giải công cụ của bạn không bị cắt xén thành tràn, điều này sẽ phá vỡ bộ chọn css.
Nhẹ

1
@PraveenKumar câu trả lời của bạn / fiddle phục vụ một mục đích cho tôi ngày hôm nay ;-) Đã có một vấn đề tương tự mà tôi không thể tìm ra, vì vậy tôi figured tôi muốn "Google", vì nó là . Chúc mừng
Funk Bốn mươi Niner 6/12/2016

109

Bootstrap 2

Nếu bạn cũng muốn thay đổi dấu mũ / mũi tên, hãy làm như sau:

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

hoặc là

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

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

CẬP NHẬT: Bootstrap 3

Bạn phải cụ thể cho hướng của chú giải công cụ trong Bootstrap 3. Ví dụ:

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

jsFiddle cho tất cả các hướng chú giải công cụ bằng Bootstrap 3: http://jsfiddle.net/technotarek/L2rLE/


Fiddle không hoạt động và tôi không thấy dấu mũ thay đổi với mã này.
Don

@Don Các github giới thiệu đến css và js không còn hoạt động; được cập nhật để sử dụng Bootstrap CDN (di sản).
technoTarek

Không ai trong số này làm việc cho tôi, nhưng giải pháp của Tuyền thì có.
Tillito

@technoTarek Có một vấn đề với các vị trí bên trái, bên phải và trên cùng. kiểm tra jsFiddle
Anurag

@Anurag Fiddle của bạn không sử dụng giải pháp tôi cung cấp. Đây là giải pháp của tôi cho tất cả các hướng sử dụng html và js của bạn, nhưng css của tôi: jsfiddle.net/technotarek/nhvvqz4v
technoTarek

61

Cách duy nhất làm việc cho tôi:

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


Giải pháp duy nhất phù hợp với tôi trên tất cả các vị trí của tooltip :). Cảm ơn!
Anurag

Đáng lẽ phải là câu trả lời được chấp nhận. Nó sẽ giúp người đọc nếu bạn có thể thêm một jsFiddle.
Anurag

12

Đối với bootstrap4 tôi đã sử dụng mã:

.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

Đây là mã tooltip trong 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

Đối với màu mũi tên, bạn có thể sử dụng:

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

7

Điều quan trọng cần lưu ý, kể từ Bootstrap 4, bạn có thể tùy chỉnh các kiểu này trực tiếp trong tệp biến Bootstrap Sass của mình, vì vậy, trong _variables.scss bạn có các tùy chọn sau:

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

Xem tại đây: http://v4-alpha.getbootstrap.com/getting-started/options/

Tốt nhất để làm việc trong Sass và biên dịch khi bạn đi với các công cụ xây dựng Grunt hoặc Gulp.


Bạn cũng có thể đặt màu bằng bootstrap 3 với $ tooltip-color, $ tooltip-bg và $ tooltip-arrow-color
Woraphot Chokratanasombat

6

sửa lỗi jQuery của tôi:

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

Bạn có thể sử dụng điều này để giải quyết vấn đề của bạn. Tôi đã kiểm tra nó trong dự án của tôi và nó hoạt động tốt.

<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

Điều này đã được trả lời đúng nhưng tôi nghĩ tôi cũng nên đưa ra ý kiến ​​của mình. Giống như cozen nói đây là một đường viền và để nó hoạt động, bạn phải chỉ định các lớp để định dạng này giống như cách bootstrap chỉ định nó. Vì vậy, bạn có thể làm điều này

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

hoặc bạn có thể làm cái tiếp theo, chỉ cho mũi tên công cụ nhưng bạn phải thêm! quan trọng, để nó ghi đè lên css bootstrap

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

4

Điều này làm việc cho tôi.

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

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

1
Không có giải pháp nào khác làm việc cho tôi. Nhưng, giải pháp của bạn đã làm việc cho tôi. Cảm ơn! :)))
Aspyn Lim

3

Không có câu trả lời nào ở trên hoạt động tốt trong trường hợp container: 'body'và giải pháp sau đây:

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

Và một đoạn CSS đơn giản:

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

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

Bây giờ bạn có thể khởi tạo tooltip của mình như bình thường, chuyển lớp CSS tùy chỉnh thông qua data-tooltip-custom-classthuộc tính:

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

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

3

BootStrap 4

Khi sử dụng BootStrap 4, tooltip được gắn vào dưới cùng của thẻ body. Nếu chú giải công cụ của bạn là con của một thẻ khác, không có cách nào để nhắm mục tiêu vào chú giải công cụ bằng css. Cách duy nhất tôi thấy rằng hoạt động là sử dụng sự kiện insert.bs.tooltip và thêm một lớp vào div bên trong và mũi tên. Sau đó, bạn có thể nhắm mục tiêu các lớp trong 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>


Đây là giải pháp hoạt động cho Bootstrap 4. Mẹo: Nếu bạn, như tôi, đang sử dụng hướng dẫn kích hoạt tooltip (ví dụ: tooltip luôn hiển thị), hãy sử dụng bất kỳ thuộc tính html nào khác, bởi vì sử dụng 'chuyển đổi dữ liệu' sẽ kích hoạt hiển thị / ẩn sự kiện với chuột di chuột.
mizerablebr

2

Bạn có thể sử dụng quickapproach được đề cập trong các câu trả lời khác nếu bạn chỉ muốn thay đổi màu sắc. Tuy nhiên, nếu bạn đang sử dụng Bootstrap hơn bạn nên sử dụng các chủ đề để giao diện phù hợp. Thật không may, không có hỗ trợ tích hợp cho các chủ đề cho Bootstrap nên tôi đã viết một đoạn CSS nhỏ thực hiện điều này. Về cơ bản tooltip-info, bạn nhận được tooltip-warningcác lớp , vv mà bạn có thể thêm vào phần tử để áp dụng chủ đề.

Bạn có thể tìm thấy mã này cùng với fiddle, ví dụ và giải thích thêm trong câu trả lời này: https://stackoverflow.com/a/20880412/207661


2

Bạn có thể sử dụng cách này:

Và trong CSS:

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

2

Mũi tên là một đường viền.
Bạn cần thay đổi cho mỗi mũi tên màu tương ứng.

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

Tuy nhiên Nếu tôi muốn thêm một lớp để thay đổi màu sắc (như trong fiddle với '. Class + .tooltip ...' thì nó không hoạt động (bootstrap 3).
Nếu ai đó biết cách xử lý điều đó?!?


2

Bootstrap 3 + SASS cho tooltip dưới cùng :

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

2

Đối với mũi tên, trước tiên hãy xác nhận rằng bạn đang sử dụng hướng nào. Ví dụ, tôi đang sử dụng lefthướng, thì nó nên

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

2

Có vẻ như đã thay đổi trong Bootstrap 4

Nếu bạn muốn thay đổi màu của chú giải công cụ được đặt phía dưới màu đỏ, chỉ cần thêm phần này vào CSS của bạn:

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

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

1

Nó sẽ thay đổi màu của tooltip trong bootstrap4, bạn có thể sử dụng dưới cùng, bên trái, bên phải để thêm CSS cho tương ứng thay cho top trong .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 đang hoạt động, vui lòng kiểm tra vị trí của CSS.
Manish

giải thích câu trả lời của bạn một chút nó có thể giúp đỡ người khác
viên

1

Đây là mã SCSS (được biên dịch css bên dưới) sẽ giúp bạn dễ dàng kiểm soát các màu của chú giải công cụ, bao gồm cả mũi tên (viền và nền cho mũi tên):

Lưu ý: bạn có thể cần thêm "quan trọng" ở một số nơi để các quy tắc CSS có hiệu lực. Lưu ý # 2: kiểu ở đây chỉ hoạt động cho bố cục công cụ TOP và BOTTOM. Vui lòng thêm một số kiểu dáng khác (& .bs-tooltip-left, & .bs-tooltip-right, v.v.)

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

Ví dụ trực tiếp:

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

Cách duy nhất làm việc cho tôi:

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

Kiểm tra điều này có lẽ nó có thể giúp bạn. Bạn có thể có nhiều màu công cụ.


0

Chúng tôi đang sử dụng bootstrap 3.0 trên trang web của mình, nhưng không có bước nào ở trên hoạt động trong việc cập nhật kiểu dáng của tooltip. Nhưng tôi đã tìm thấy một giải pháp bằng cách sử dụng kiểu dáng 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>

Tôi đang thêm câu trả lời này trong trường hợp người khác gặp tình huống tương tự như tôi.


0

Phương pháp dễ dàng này hoạt động với tôi khi tôi muốn thay đổi màu nền của các công cụ 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>

Lưu ý A:

Nếu js đang bao gồm .data('tooltip')không làm việc cho bạn thì hãy bình luận dòng của nóbỏ ghi chú js đang có .data('bs-tooltip').

Lưu ý B:

Nếu hàm tooltip bootstrap của bạn thêm một tooltip vào phần cuối của cơ thể (không phải ngay sau phần tử) , giải pháp của tôi vẫn hoạt động tốt nhưng một số câu trả lời khác trong các trang này không hoạt động như @Praveen Kumar@technoTarek trong kịch bản này.

Lưu ý C:

Đây là sự mã hỗ trợ tooltip arrowmàu sắc trong tất cả các vị trí của các tooltip ( top, bottom, left, right).


0

Nếu bạn muốn sử dụng jQuery, bạn có thể thử điều này:

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

0

Đối với Bootstrap 4 với sự phụ thuộc vào tether.js, các lớp mũi tên .tooltip đã được thay thế bằng .tooltip.bs-tether-Element-Đính kèm- [vị trí] {...}

Đây là cách tôi thay đổi màu sắc và mũi tên dày lên phía dưới. Đối với mỗi pixel được thêm vào chiều rộng đường viền, tôi phải trừ một pixel khỏi vị trí "dưới cùng".

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

Bạn sẽ phải điều chỉnh cho các vị trí khác, ví dụ: đối với .tooltip.bs-tether-phần tử được gắn bên trái, bạn sẽ điều chỉnh viền phải và định vị lại nếu tăng độ rộng đường viền bằng cách trừ các pixel từ "trái", v.v.


Tôi đã bỏ qua đề cập đến một khía cạnh khác: Nếu tăng độ rộng đường viền của phần tử tether, cũng cần định vị lại về trung tâm bằng cách sử dụng kiểu lề, do đó, để thay đổi từ viền mặc định 5px thành 10px, tôi cũng phải thay đổi lề mặc định: -5px; sang lề trái: -10px;
deusoz

0

Câu trả lời của Oleg https://stackoverflow.com/a/42994192/9921853 là tốt nhất ở đó. Nó cho phép áp dụng các kiểu tooltip cho các phần tử được tạo động. Tuy nhiên, nó không hoạt động cho Bootstrap 4. Nó nên được sửa đổi một chút:

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

Ví dụ: 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'));
});

Ví dụ: https://jsfiddle.net/nsmcan/naq530hx

Giải pháp đầy đủ (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

cho phiên bản Bootstrap 4 qua CSS:

Nếu bạn muốn thay đổi màu nền của bóng bay :

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

nếu bạn muốn thay đổi mũi tên khi xuất hiện ở vị trí dưới cùng :

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

Mong giúp bạn


0

Trong dự án BS4 của bạn, nếu bạn có thể biên dịch mã SASS, bạn có thể tận dụng việc tạo một mixin để quản lý bảng màu của các chú giải công cụ từ bất kỳ hướng nào.

Lợi ích của phương pháp này:

  • Bạn không cần phải thêm javaScript / jQuery bổ sung cho những thứ liên quan đến kiểu dáng.
  • Bạn tận dụng SASS để tự động xử lý việc xây dựng thương hiệu cho bạn.
  • Bạn có thể dễ dàng kiểm soát các chú giải công cụ nào có màu và hướng (s).

Đây là một trong nhiều cách để bạn có thể thực hiện điều này:

Tạo mixin ban đầu của bạn:

  • Cung cấp một biến cho một màu
  • Đặt 2 tham số (một cho tên lớp tùy chỉnh của chú giải công cụ của bạn và một cho màu). Tôi cũng thêm các giá trị mặc định cho các tham số này (tùy chọn).
  • Tạo một danh sách và lặp qua nó để bao quát cả 4 hướng có thể

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


Gọi mixin của bạn (điều chỉnh tên lớp và màu sắc)

  • Trong tệp .scss chính của bạn gọi mixin của bạn như vậy:

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


Đặt Tooltip BS4 trong bố cục của bạn (điều chỉnh hướng)

  • Cuối cùng, thêm một chú giải công cụ BS4 vào bố cục của bạn và cung cấp cho nó một lớp tùy chỉnh để linh hoạt. Tài nguyên BS4 này nói về việc sử dụng mẫu làm tùy chọn. Chúng tôi sẽ sử dụng điều đó để thêm lớp tùy chỉnh của chúng tôi.

  • Ví dụ sau đây thêm một chú giải công cụ trên huy hiệu biểu tượng thông tin:

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


Với thiết lập này, bạn có thể điều chỉnh tên lớp, màu sắc và hướng của chú giải công cụ mà không cần chạm vào mixin ban đầu của bạn . Thật tuyệt làm sao :)

Hi vọng điêu nay co ich!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.