【问题标题】:Popper.js not working if bootstrap CSS is imported?如果导入了引导 CSS,Popper.js 不起作用?
【发布时间】:2019-06-28 01:48:42
【问题描述】:

我遇到了一个真的不寻常的问题,如果我使用 Bootstrap CSS,Popper.js 和 Tooltip.js 会拒绝工作。

这是我用来测试的代码:

<script src="https://unpkg.com/popper.js/dist/umd/popper.min.js"></script>
<script src="https://unpkg.com/tooltip.js/dist/umd/tooltip.min.js"></script>

<span id="test-tooltip" data-tooltip="Testing tooltips!">Hover over me, I dare you.</span>

 <script>
  document.addEventListener('DOMContentLoaded', function() {
    var referenceElement = document.getElementById("test-tooltip");
    var instance = new Tooltip(referenceElement, {
      title: referenceElement.getAttribute('data-tooltip'),
      placement: "bottom",
    });
  });
</script>

还有一些 CSS,但它很长,所以我将把它留在底部。

如果我在任何地方包含 Bootstrap,整个事情就会停止工作。悬停时什么都没有显示。

<link rel="stylesheet" href="CSS/bootstrap.css">

我正在使用最新版本的引导程序,我什至也尝试了一些旧版本。

这是用于设置工具提示样式的 CSS:

.popper,
.tooltip {
  position: absolute;
  background: rgb(75, 75, 75);
  color: white;
  min-width: 80px;
  border-radius: 3px;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
  padding: 12px;
  text-align: center;
}
.popper .popper__arrow,
.tooltip .tooltip-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
  margin: 5px;
}

.tooltip .tooltip-arrow,
.popper .popper__arrow {
  border-color: rgb(75, 75, 75);
}
.popper[x-placement^="top"],
.tooltip[x-placement^="top"] {
  margin-bottom: 6px;
}
.popper[x-placement^="top"] .popper__arrow,
.tooltip[x-placement^="top"] .tooltip-arrow {
  border-width: 5px 5px 0 5px;
  border-left-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  bottom: -5px;
  left: calc(50% - 5px);
  margin-top: 0;
  margin-bottom: 0;
}
.popper[x-placement^="bottom"],
.tooltip[x-placement^="bottom"] {
  margin-top: 6px;
}
.tooltip[x-placement^="bottom"] .tooltip-arrow,
.popper[x-placement^="bottom"] .popper__arrow {
  border-width: 0 5px 5px 5px;
  border-left-color: transparent;
  border-right-color: transparent;
  border-top-color: transparent;
  top: -5px;
  left: calc(50% - 5px);
  margin-top: 0;
  margin-bottom: 0;
}
.tooltip[x-placement^="right"],
.popper[x-placement^="right"] {
  margin-left: 6px;
}
.popper[x-placement^="right"] .popper__arrow,
.tooltip[x-placement^="right"] .tooltip-arrow {
  border-width: 5px 5px 5px 0;
  border-left-color: transparent;
  border-top-color: transparent;
  border-bottom-color: transparent;
  left: -5px;
  top: calc(50% - 5px);
  margin-left: 0;
  margin-right: 0;
}
.popper[x-placement^="left"],
.tooltip[x-placement^="left"] {
  margin-right: 6px;
}
.popper[x-placement^="left"] .popper__arrow,
.tooltip[x-placement^="left"] .tooltip-arrow {
  border-width: 5px 0 5px 5px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  right: -6px;
  top: calc(50% - 5px);
  margin-left: 0;
  margin-right: 0;
}

有谁知道为什么会发生这种不寻常的事情? 我尝试过的事情:

  • 从 bootstrap.css 中删除与工具提示相关的所有内容
  • 在代码中的 Popper.js 相关内容之前/之后导入引导程序。
  • 将自定义 CSS 放入 bootstrap.css。

还有许多其他事情,我在试图弄清楚这一点时都忘记了。

【问题讨论】:

    标签: html css twitter-bootstrap bootstrap-4 popper.js


    【解决方案1】:

    我浏览了您的代码,它运行良好,问题仅在于工具提示的不透明度。 添加此代码以显示您的工具提示

    .tooltip[aria-hidden="false"]{
      opacity:1;
    }
    

    链接到工作小提琴here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 2021-09-01
      • 2018-10-31
      • 2018-09-15
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多