เปลี่ยนสีคำแนะนำเครื่องมือ Bootstrap


126

สิ่งที่ฉันพยายามทำคือเปลี่ยนสีคำแนะนำเครื่องมือเป็นสีแดง อย่างไรก็ตามฉันต้องการมีสีอื่น ๆ อีกหลายสีดังนั้นฉันไม่เพียงต้องการแทนที่สีของคำแนะนำเครื่องมือดั้งเดิม

ฉันจะทำสิ่งนี้ได้อย่างไร



มองไปที่คำตอบนี้: stackoverflow.com/a/38279489/3554107 สำหรับการจัดรูปแบบลูกศรทิศทางแต่ละลูกเราต้องเลือกลูกศรแต่ละลูกโดยใช้ตัวเลือกแอตทริบิวต์ CSS จากนั้นจัดรูปแบบทีละลูก
วิษณุ

สไตล์ที่กำหนดเองสำหรับแต่ละคำแนะนำเครื่องมือ ฉันเพิ่งโพสต์วิธีแก้ปัญหาที่ค่อนข้างง่ายที่นี่ ...
จอร์จ

คำตอบ:


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 : ด้วย bootstrap เวอร์ชันล่าสุดคุณอาจต้องทำสิ่งนี้เพื่อกำจัดลูกศรสีดำ:

.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
gawd! ความผิดฉันเอง!!! แก้ไขแล้ว. @codesnooker ไม่เห็นบอกว่าคุณศร !!! ขอโทษจริงๆ!!!
Praveen Kumar Purushothaman

4
ด้วย bootstrap เวอร์ชันล่าสุดคุณอาจต้องทำสิ่งนี้เพื่อกำจัดลูกศรสีดำ: .red-tooltip + .tooltip.top > .tooltip-arrow {background-color: #f00;}
Moein

4
วิธีนี้ดีถ้าคุณปล่อยให้containerตัวเลือกคำแนะนำเครื่องมือเป็นค่าเริ่มต้น อย่างไรก็ตามหากคุณทำcontainer: "body"เพื่อไม่ให้คำแนะนำเครื่องมือของคุณถูกตัดมากเกินไปการทำเช่นนี้จะทำให้ตัวเลือก css เสียหาย
เล็กน้อย

1
@PraveenKumar คำตอบ / ซอของคุณมีจุดประสงค์ให้ฉันในวันนี้ ;-) มีปัญหาคล้าย ๆ กันที่ฉันคิดไม่ออกดังนั้นฉันจึงคิดว่าฉัน "Google" เหมือนเดิม Cheers
Funk Forty Niner

109

Bootstrap 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

สิ่งนี้ไม่ได้ผลสำหรับฉัน แต่วิธีแก้ปัญหาของ Tuyen ทำได้
Tillito

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


ทางออกเดียวที่ใช้ได้ผลสำหรับฉันในทุกตำแหน่งของคำแนะนำเครื่องมือ :) ขอบคุณ!
Anurag

ควรเป็นคำตอบที่ได้รับการยอมรับ มันจะช่วยผู้อ่านถ้าคุณสามารถเพิ่ม jsFiddle
Anurag

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


คุณยังสามารถกำหนดสีโดยใช้ bootstrap 3 ด้วย $ tooltip-color, $ tooltip-bg และ $ tooltip-arrow-color
วรพจน์โชครัตนสมบัติ

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

หรือคุณสามารถทำสิ่งถัดไปสำหรับคำแนะนำเครื่องมือ - ลูกศร แต่คุณต้องเพิ่ม! important เพื่อให้มันเขียนทับ bootstrap css

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

4

สิ่งนี้ได้ผลสำหรับฉัน

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

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

1
ไม่มีวิธีแก้ปัญหาอื่นใดที่ใช้ได้ผลสำหรับฉัน แต่วิธีแก้ปัญหาของคุณใช้ได้ผลสำหรับฉัน ขอบคุณ! :)))
Aspyn Lim

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

BootStrap 4

เมื่อใช้ BootStrap 4 คำแนะนำเครื่องมือจะต่อท้ายแท็กเนื้อหา หากคำแนะนำเครื่องมือของคุณเป็นลูกของแท็กอื่นจะไม่มีวิธีกำหนดเป้าหมายคำแนะนำเครื่องมือโดยใช้ css วิธีเดียวที่ฉันพบว่าใช้งานได้คือใช้เหตุการณ์ insert.bs.tooltip และเพิ่มคลาสให้กับ div ภายในและลูกศร จากนั้นคุณสามารถกำหนดเป้าหมายชั้นเรียนใน 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

คุณสามารถใช้ Quickapproach ที่กล่าวถึงในคำตอบอื่น ๆ ได้หากต้องการเปลี่ยนสี อย่างไรก็ตามหากคุณใช้ 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 ... ' มันใช้ไม่ได้ (bootstrap 3)
หากมีใครรู้วิธีจัดการกับสิ่งนั้น!?



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

มันจะเปลี่ยนสีของ tooltip ใน bootstrap4 คุณสามารถใช้ด้านล่างซ้ายขวาเพื่อเพิ่ม CSS ตามลำดับแทนด้านบนใน. 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
Manish

อธิบายคำตอบของคุณสักหน่อย มันสามารถช่วยคนอื่นได้
coder

1

นี่คือรหัส SCSS (คอมไพล์ css ด้านล่าง) ที่จะช่วยให้คุณควบคุมสีคำแนะนำเครื่องมือได้อย่างง่ายดายรวมถึงลูกศร (เส้นขอบและพื้นหลังสำหรับลูกศรด้วย):

หมายเหตุ: คุณอาจต้องเพิ่ม "สำคัญ" ในบางตำแหน่งเพื่อให้กฎ CSS มีผล หมายเหตุ # 2: สไตล์ที่นี่ใช้ได้กับเค้าโครงคำแนะนำเครื่องมือด้านบนและด้านล่างเท่านั้น อย่าลังเลที่จะเพิ่มสไตล์เพิ่มเติม (& .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

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

วิธีง่ายๆนี้ใช้ได้กับฉันเมื่อฉันต้องการเปลี่ยนสีพื้นหลังของคำแนะนำเครื่องมือ 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>

หมายเหตุ A:

ถ้า jsรหัสรวมถึง.data('tooltip')ไม่ทำงานสำหรับคุณแล้วโปรดแสดงความคิดเห็นสายและuncomment 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-arrow จะถูกแทนที่ด้วย. tooltip.bs-tether-element-attached- [position] {... }

นี่คือวิธีที่ฉันเปลี่ยนสีและลูกศรด้านล่างที่หนาขึ้น สำหรับทุกพิกเซลที่เพิ่มลงในความกว้างของเส้นขอบฉันต้องลบพิกเซลออกจากตำแหน่ง "ด้านล่าง"

.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-tether-element-attached-left คุณจะต้องปรับ border-right และเปลี่ยนตำแหน่งหากเพิ่มความกว้างของเส้นขอบโดยการลบพิกเซลจาก "ซ้าย" เป็นต้น


ฉันละเลยที่จะพูดถึงอีกแง่มุมหนึ่ง: หากเพิ่มความกว้างเส้นขอบขององค์ประกอบโยงก็จำเป็นต้องเปลี่ยนตำแหน่งกลับไปที่กึ่งกลางโดยใช้สไตล์ระยะขอบดังนั้นในการเปลี่ยนจากเส้นขอบ 5px เริ่มต้นเป็น 10px ฉันต้องเปลี่ยนขอบซ้ายเริ่มต้นด้วย: -5px; ถึงขอบซ้าย: -10px;
deusoz

0

คำตอบของ Oleg https://stackoverflow.com/a/42994192/9921853นั้นดีที่สุด อนุญาตให้ใช้สไตล์คำแนะนำเครื่องมือกับองค์ประกอบที่สร้างขึ้นแบบไดนามิก อย่างไรก็ตามมันใช้ไม่ได้กับ Bootstrap 4 ควรแก้ไขเล็กน้อย:

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

ตัวอย่าง: 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'));
});

ตัวอย่าง: 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>


ด้วยการติดตั้งนี้คุณสามารถปรับชื่อชั้นสีและทิศทางของเคล็ดลับของคุณโดยไม่ต้องสัมผัส mixin จะเด็ดแค่ไหน :)

หวังว่านี่จะช่วยได้!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.