【问题标题】:CSS ToolTip being cut off by vertical scrollbar.CSS ToolTip 被垂直滚动条截断。
【发布时间】:2012-01-21 21:26:38
【问题描述】:

我有一个包含以下 CSS 的简单工具提示

/* tooltip for buttons */
a.tooltip{position:relative; z-index:24;text-decoration:none}
a.tooltip:hover{z-index:25;}
a.tooltip span{display: none}
a.tooltip:hover span{ /*the span will display just on :hover state*/
    display:block;
    position:absolute;
    top:1.1em; left:1.1em; width:10em;
    border:1px solid #6e7044;
    background-color:#feffe1; color:#6e7044;
    text-align: center}

这在正常情况下适用于我。

但如果我有一个预定义高度和overflow-y:auto; 的 div,我有 2 个问题

  1. 工具提示被截断。 (在 div 滚动条下方)
  2. 发生了一个不需要的溢出-x 以适应具有工具提示的跨度。

小提琴示例:http://jsfiddle.net/naveen/2ur3Q/

我该如何纠正这个问题?

【问题讨论】:

  • 您必须将工具提示移到包含 div 之外,不幸的是,您无法从父容器中覆盖工具提示的 z-index
  • 有 JavaScript 替代方案吗?我在我网站上的许多地方都使用了这个 css,我希望有一个通用的解决方案。
  • 有很多 JS 替代品,我最喜欢的是 Flowplayer 的那个,你可以在这里找到它。 flowplayer.org/tools/demos/tooltip/index.html
  • 让我试试。问题是我想在asp:gridview 上模拟这种行为
  • @KyleSevenoaks:谢谢。我最终使用了bassistance.de/jquery-plugins/jquery-plugin-tooltip

标签: html css


【解决方案1】:

为了使您现有的解决方案保持最小的更改,您可能想尝试这个 JavaScript 解决方案 - http://jsfiddle.net/8yeDy/

只需从标记中删除所有span-s,附加一些JS

$('a').mouseover(function() {
     $(this).parent().append('<span>Eliminate(Delete)</span>');
 }).mouseleave(function() {
     $(this).siblings('span').remove();
 })

以及对 CSS 的一些更改(跨度不再位于 &lt;a&gt; 中 - 仅靠它自己)

span{ /*the span will display just on :hover state*/
    display:block;
    position:absolute;
        left:10.8em; width:10em;
    border:1px solid #6e7044;
    background-color:#feffe1; color:#6e7044;
    text-align: center;
    margin-top:-1.8em;
}

【讨论】:

  • 没有芽。如果图像位于行的中间,这将不起作用。工具提示仍然显示在最后。
  • 我的朋友,它有效,它有效 :) jsfiddle.net/8yeDy/1(对于糟糕的浏览器,你可能想使用 jQuery 来启用 :after,但你明白了)
猜你喜欢
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
相关资源
最近更新 更多