_tooltip.scss 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Base class
  2. .tooltip {
  3. position: absolute;
  4. z-index: $zindex-tooltip;
  5. display: block;
  6. margin: $tooltip-margin;
  7. // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
  8. // So reset our font and text properties to avoid inheriting weird values.
  9. @include reset-text();
  10. font-size: $font-size-sm;
  11. // Allow breaking very long words so they don't overflow the tooltip's bounds
  12. word-wrap: break-word;
  13. opacity: 0;
  14. &.show { opacity: $tooltip-opacity; }
  15. .arrow {
  16. position: absolute;
  17. display: block;
  18. width: $tooltip-arrow-width;
  19. height: $tooltip-arrow-height;
  20. }
  21. .arrow::before {
  22. position: absolute;
  23. border-color: transparent;
  24. border-style: solid;
  25. }
  26. &.bs-tooltip-top {
  27. padding: $tooltip-arrow-width 0;
  28. .arrow {
  29. bottom: 0;
  30. }
  31. .arrow::before {
  32. margin-left: -($tooltip-arrow-width - 2);
  33. content: "";
  34. border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
  35. border-top-color: $tooltip-arrow-color;
  36. }
  37. }
  38. &.bs-tooltip-right {
  39. padding: 0 $tooltip-arrow-width;
  40. .arrow {
  41. left: 0;
  42. }
  43. .arrow::before {
  44. margin-top: -($tooltip-arrow-width - 2);
  45. content: "";
  46. border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
  47. border-right-color: $tooltip-arrow-color;
  48. }
  49. }
  50. &.bs-tooltip-bottom {
  51. padding: $tooltip-arrow-width 0;
  52. .arrow {
  53. top: 0;
  54. }
  55. .arrow::before {
  56. margin-left: -($tooltip-arrow-width - 2);
  57. content: "";
  58. border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
  59. border-bottom-color: $tooltip-arrow-color;
  60. }
  61. }
  62. &.bs-tooltip-left {
  63. padding: 0 $tooltip-arrow-width;
  64. .arrow {
  65. right: 0;
  66. }
  67. .arrow::before {
  68. right: 0;
  69. margin-top: -($tooltip-arrow-width - 2);
  70. content: "";
  71. border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
  72. border-left-color: $tooltip-arrow-color;
  73. }
  74. }
  75. &.bs-tooltip-auto {
  76. &[x-placement^="top"] {
  77. @extend .bs-tooltip-top;
  78. }
  79. &[x-placement^="right"] {
  80. @extend .bs-tooltip-right;
  81. }
  82. &[x-placement^="bottom"] {
  83. @extend .bs-tooltip-bottom;
  84. }
  85. &[x-placement^="left"] {
  86. @extend .bs-tooltip-left;
  87. }
  88. }
  89. }
  90. // Wrapper for the tooltip content
  91. .tooltip-inner {
  92. max-width: $tooltip-max-width;
  93. padding: $tooltip-padding-y $tooltip-padding-x;
  94. color: $tooltip-color;
  95. text-align: center;
  96. background-color: $tooltip-bg;
  97. @include border-radius($border-radius);
  98. }