问题描述

我正在开发一个引导站点,并从 2.0 之后更新到 bootstrap 2.2,除了 popover 之外,所有工作都有效。

popovers 仍然显示良好,但它们不会显示在所有其他元素之上。

<div> // this sits on top of the popover. this did not happen before cleaning up scripts.
     <div>  //popover shows on top of this
          <div> //popover shows on top of this
               //link here with popover in it.
          </div>
     </div>
</div>

任何人都知道为什么 popover 的行为改变了,或者我如何解决它?谢谢。

最佳解决方案

我能够通过在 html 元素上设置 data-container="body"来解决问题

HTML 示例:

<a href="#" data-toggle="tooltip" data-container="body" title="first tooltip">
    hover over me
</a>

JavaScript 示例:

$('your element').tooltip({ container: 'body' })

从此链接发现:https://github.com/twitter/bootstrap/issues/5889

次佳解决方案

这是为我工作

$().popover({container: 'body'})

第三种解决方案

我只是有一个这样的情况,涉及启用滚动的 DataTables JQuery 库。

原来与 Z-indices 没有任何关系,但是其中一个包含 CSS overflow 属性的 div 设置为隐藏。

我通过向我的元素添加一个事件来触发 popover 来修复它,这也改变了负责的 div 的 overflow 属性为 visible 。

第四种方案

最可能的原因是在 popover 上显示的内容有更高的 z-index 。没有准确的代码/样式,我可以提供两个选择:

您应该尝试使用 Web 检查器 (通常在最喜爱的浏览器上使用 F12) 精确确定元素,并检查其实际的 z-index

如果找到该值,则可以将其设置为低于默认为 z-index: 1010; 的 popover


或者另一种方法,不是那么好,将会增加 Popover 的 z-index 。您可以使用 @zindexPopover 在 Less 文件中或直接通过覆盖

.popover {
    z-index: 1010; /* A value higher than 1010 that solves the problem */
}

如果找不到解决方案,您应该尝试在 this jsfiddle 中重现错误 – 您可能会在尝试获取错误时解决问题。

第五种方案

我有一个类似的问题与 2 个固定元素 – 即使 z-index heirachy 是正确的,引导工具提示隐藏在一个元素的下面的 z-index 之后。

添加 data-container="body"解决了这个问题,现在正常工作。

第六种方案

如果 data-container = “body” 不能尝试其他两个属性:

data-container="body" style="z-index:1000; position:relative"

z-index 应该是最大限度。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛