css - 链接标题样式

标签 css jquery-mobile hyperlink title

我正在努力使用 jQuery-mobile 设置链接标题的样式。每个链接都是一个播放器。每个玩家都有特殊的能力。这是我希望在用户将鼠标悬停在该播放器上时显示的内容。我尝试了很多代码示例,但没有一个有效。我最后的尝试在于这个 jsFiddle .

这是链接的标记 (HTML):

<li class="ui-btn-icon-left"><a class="tooltip" data-tooltip="Promising goalkeeper" href="#"><span>L_Oikonomo</span></a></li>  

下面是工具提示的 CSS(没有供应商前缀):

/* tooltip body text */
 .tooltip:hover:before {
    display:block;
    background:#eee;
    background:linear-gradient(rgba(255, 205, 205, 0.9), rgba(228, 230, 230, 0.9));
    content:attr(data-tooltip);    /* this link attribute contains tooltip text */
    position:absolute;
    font-size:0.9em;
    color:rgba(51, 51, 51, 0.9);
    bottom:20px;    /* ensure link text is visible under tooltip */
    right:0px;    /* align both tooltip and link right edges */
    width:11em;    /* a reasonable width to wrap tooltip text */
    text-align:center;
    padding:4px;
    border:2px solid rgba(204, 153, 153, 0.9);
    border-radius:6px;
    box-shadow:-2px -2px 2px rgba(20, 20, 20, 0.4);
}
/* styles shared by both triangles */
 .tooltip:hover span:before, .tooltip:hover span:after {
    content:"";
    position:absolute;
    border-style:solid;
}
/* outer triangle: for border */
 .tooltip:hover span:before {
    bottom:5px;    /* value = tooltip:hover:before (border-width*2)+1 */
    right:40px;    /* controls horizontal position */
    border-width:16px 16px 0;    /* top, right-left, bottom */
    border-color:rgba(204, 153, 153, 0.9) transparent;    /* top/bottom, right-left (lazy becasue bottom is 0) */
}
/* inner triangle: for fill */
 .tooltip:hover span:after {
    bottom:8px;    /* value = tooltip:before (border-width*2) */
    right:42px;    /* above 'right' value + 2 */
    border-width:14px 14px 0;    /* 2 less than above */
    border-color:rgba(225, 238, 238, 0.95) transparent;    /* tweak opacity by eye/eyedropper to obscure outer triangle colour */
}

有没有可能让它工作? 如果没有,您是否还有其他想法来设置链接标题的样式?

最佳答案

您的代码所面临的问题似乎部分是因为 .tooltip:before 伪元素在别处使用(同样可能由库)。由于您已经在使用 jQuery 移动库,您最好查看 jQuery UI's tooltip。 .

如果您不想使用该库,则应进行以下更改以解决问题并在将鼠标移到 anchor 元素上时显示样式化的工具提示(或标题):

  • 库目前正在向 anchor 元素添加 overflow: hidden。如果不删除,工具提示将不会完全显示,因为溢出的部分将被隐藏。

    .ui-page-theme-a .ui-block-a a.ui-btn {
        overflow: visible;
    }
  • 使用 span 标签代替 a 标签创建工具提示(因为如前所述,a 标签的伪- 元素似乎已被使用)。

    <li class="ui-btn-icon-left">
      <a href="#">
        <span class="tooltip" data-tooltip="Promising goalkeeper">L_Oikonomo</span>
      </a>
    </li>
  • position: relative 添加到 span 元素,因为我们需要相对于它绝对定位工具提示。

    .tooltip {
        position: relative;
    }
  • 添加代码以在将鼠标移到 anchor 上时显示工具提示。除了一些最小的更改外,这与您的原始代码几乎相同。添加了 z-index,以便工具提示显示在链接文本上方。

    a:hover .tooltip:before {
        position: absolute;
        content: attr(data-tooltip);
        bottom: 2em; /* ensure link text is visible under tooltip */
        right:0px; /* align both tooltip and link right edges */
        height: 2em;
        width: 11em;
        background:linear-gradient(rgba(255, 205, 205, 0.9), rgba(228, 230, 230, 0.9));
        content:attr(data-tooltip); /* this link attribute contains tooltip text */
        font-size:0.9em;
        color:rgba(51, 51, 51, 0.9);
        text-align:center;
        padding:4px;
        border:2px solid rgba(204, 153, 153, 0.9);
        border-radius:6px;
        box-shadow:-2px -2px 2px rgba(20, 20, 20, 0.4);
        z-index: 1;
    }
  • 下面的代码用于底部的三 Angular 形。我使用 transform: rotate(45deg) 方法而不是 border 方法来创建三 Angular 形,因为我们只有一个备用伪元素。额外的渐变是必需的,因为我们只需要为三 Angular 形的一半大小着色。

    a:hover .tooltip:after {
        content:"";
        position:absolute;
        bottom: calc(2em - 8px);
        right:42px;
        height: 10px;
        width: 10px;
        background: linear-gradient(135deg, transparent 50%, #eee 50%);
        border: 1px solid rgba(204, 153, 153, 0.9);
        border-width: 0px 2px 2px 0px;
        transform: rotate(45deg);
        z-index: 2;
    }

Fiddle Demo

关于css - 链接标题样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490980/

相关文章:

html - 为什么我的 HTML 结构不适用于 CSS 网格布局?

css - 如何使用 Bootstrap 3 使按钮固定在右上角屏幕上并保持移动响应?

带子菜单的 HTML 水平滚动导航栏

javascript - jquery mobile 不会用 .html() 解释我插入的代码

html - Bootstrap自定义CSS规则如何设置文本装饰:none for hyperlink?

指向本地网络共享的 HTML 链接

css - 在容器内用 flexbox 填充高度

javascript - 记住按钮点击页面转换

jquery - 如何在jquery mobile可折叠列表中添加多个图标

html - CSS 下拉菜单链接不起作用