纯CSS实现Tooltip

DEMO:

span{
position:relative;
display:inline-block;
height:3em;
width:3em;
margin:0 0.4em;
line-height:3em;
text-align:center;
font-weight:600;

color:white;
background:rgba(204,153,255,0.8);
border: 6px solid rgba(223,191,255,0.8);
border-radius:3em;
box-shadow:0 0 5px rgba(223,191,255,0.8);
}
.tooltip{
position:absolute;
top:0;
left:-25%;

width:5em;
line-height:1em;
font-size:16px;
text-align:center;
padding:0.3em 0.5em;

color:snow;
background:#bbb;
border:2px solid rgba(147,126,168,0.8);
border-radius:3px;

opacity:0;
}
.tooltip:after{
display:block;
position:absolute;
left:20px;
top:20px;

width:0;
height:0;
border-style:solid;
border-width:4px;
border-color:red green snow black;
}
.tooltip-wrapper>span:hover{
color:rgba(133,101,168,0.8);
background:rgba(255,255,255,0.8);
border:6px solid rgba(135,101,168,0.8);
border-radius:3em;
box-shadow:0 0 20px rgba(223,191,255,0.8);

transition:all 0.2s ease-in-out;
}
.tooltip-wrapper>span:hover .tooltip{
top:-5em;
border-radius:5px;
opacity:1;
transition:all 0.2s ease-in-out;
}
.tooltip-wrapper>span:hover a{color:rgb(204,153,255) !important;}
-->

ABAngel Beats! SAOSword Art Online GTOGreat Teacher Onizuka TRCTsubasa Reservoir Chronicle D.C.Da Capo

tootip这个东西,真是什么地方都用得着,这段时间就不可避免的遇到了。

首先考虑一下tooltip的基本表现:

移动到某个元素上就会弹出的元素

这应该是最简单的tooltip了。

首先是移动到某个元素上触发效果,这里想必会用到:hover伪类。但是对其作出反应的却是另外一个元素,这里就需要实现一个联动的效果,最简单的方法,那就是嵌套咯,用外层元素做容器,使用:hover伪类派生的方法来让容器内部的元素也发生变化,在这儿就是让tooltip显示出来喽~

于是,就先来弄几个个自带容器的tooltip吧。

HTML:

<div class="tooltip-wrapper">
    <span><a href="#">AB</a><span class="tooltip">Angel Beats!</span></span>
    <span><a href="#">SAO</a><span class="tooltip">Sword Art Online</span></span>
    <span><a href="#">GTO</a><span class="tooltip">Great Teacher Onizuka</span></span>
    <span><a href="#">TRC</a><span class="tooltip">Tsubasa Reservoir Chronicle</span></span>
    <span><a href="#">D.C.</a><span class="tooltip">Da Capo</span></span>
</div>

接下来就是关键的CSS了,有这几个关键的地方:

  • 一般情况下tooltip是不应该显示出来的,所以最简单的就是将它的透明度设置为0(opacity:0;)。
  • 对于tooltip的定位,在这个演示里面tooltip在其容器的正上方出现,为了给tooltip设置相对于容器的定位,将它的父元素设置为相对定位(position:relative;)。
  • 在tooltip的父元素处于光标下的时候让tooltip显示出来,这个样式就通过父元素的:hover伪类派生来设定。
  • 为了让tooltip的出现来得和谐点,给它加个transition

CSS:

.tooltip-wrapper{
    margin:5em 2em;
    font-size:24px;
}

/*Normal State*/

.tooltip-wrapper>span{
    position:relative;
    display:inline-block;
    height:3em;
    width:3em;
    margin:0 0.4em;
    line-height:3em;
    text-align:center;
    font-weight:600;

    color:white;
    background:rgba(204,153,255,0.8);
    border: 6px solid rgba(223,191,255,0.8);
    border-radius:3em;
    box-shadow:0 0 5px rgba(223,191,255,0.8);
}
.tooltip{
    position:absolute;
    top:0;
    left:-25%;

    width:5em;
    line-height:1em;
    font-size:16px;
    text-align:center;
    padding:0.3em 0.5em;

    color:snow;
    background:#bbb;
    border:2px solid rgba(147,126,168,0.8);
    border-radius:3px;

    opacity:0;
}

/*Active State*/

.tooltip-wrapper>span:hover{
    color:rgba(133,101,168,0.8);
    background:rgba(255,255,255,0.8);
    border:6px solid rgba(135,101,168,0.8);
    border-radius:3em;
    box-shadow:0 0 20px rgba(223,191,255,0.8);

    transition:all 0.2s ease-in-out;
}
.tooltip-wrapper>span:hover .tooltip{
    top:-5em;

    border-radius:5px;

    opacity:1;
    transition:all 0.2s ease-in-out;
}

纯CSS实现Tooltip

时间: 2024-10-12 07:39:53

纯CSS实现Tooltip的相关文章

纯CSS实现tooltip提示框,CSS箭头及形状之续篇--给整个tooltip提示框加个边框

在前面一篇中我们介绍了纯CSS实现tooltip提示框,通俗的讲也就是CSS箭头及形状 不过注意一点是,他始终是一个元素,只是通过CSS实现的,今天我们要说的是给这个“tooltip提示框”整体加一个边框,下面是是一篇完成的截图(不了解的可以看看:纯CSS实现tooltip提示框,CSS箭头及形状): 首先像:after一样我们介绍另外一个CSS中“ :before ”选择器 定义和用法:(参考w3school:before选择器) :before 选择器在被选元素的内容前面插入内容,使用 co

纯CSS实现tooltip提示框,CSS箭头及形状

原文:纯CSS实现tooltip提示框,CSS箭头及形状 本片介绍仅用CSS做出tooltip那样的提示框及箭头等形状! 首先介绍一下CSS:after选择器 定义和用法:(参考w3school:after选择器) :after选择器在被选元素的内容后面插入内容,使用content属性来指定要插入的内容 例: p:after { content:"台词:-"; background-color:yellow; color:red; font-weight:bold; } 具体大家可以参

纯CSS 实现tooltip 内容提示信息效果

Tooltip 也就是内容的提示信息,合理使用可以给用户比较好的体验. 实现方法有很多种,有很多JS 插件,我这里介绍的是纯CSS实现的方法,兼容性也比较靠谱,IE8+均可正常显示.实现方法也非常简单. html结构 <a class="css-tooltip" href="http://fatesinger.com/73887" data-tooltip="137 likes with 3.43k reads">WordPress

使用date-*属性实现纯css的tooltip

HTML: <p data-tip="Hover Me!Hover Me!" style="margin-top:80px">Hover Me!</p> <p data-tip="图文消息" style="margin-top:80px">Hover Me!</p> CSS: p { cursor: pointer; position: relative; } p:hover:b

用纯css的方法实现popout内容

在没有引用jquery和其他插件的时候,可以通过纯css的方法实现popout框,效果类似tooltip.这种方法虽然很拙劣,但是未尝也是一种解决办法.我们都知道a标签有几个伪类可以使用,这里要特别注意的是a:link,a:visited,a:hover,a:active这四个伪类的顺序,若不按这样的顺序可能会导致无法实现预期的效果.一般我们只用a:hover这个伪类来实现悬停的效果,而巧妙地利用这个伪类,我们可以实现类似tooltip的效果.但这有一些缺陷,就是popout的内容必须在a标签内

三种纯CSS方法实现等高列

在这篇文章里, 我会介绍三种使用纯css的方式来实现等高列的方法.在网页布局中设置列等高是比较常见的, 所以写这篇文章就是要总结下一些优雅的纯CSS解决方案. 插图自己弄得,不喜莫喷 哈哈.. 下面介绍的三种方法都只用到了CSS , 不涉及jQuery.JavaScript计算实现的方法,所以我把它这篇文章标题设为:三种纯CSS方法实现等高列. 方法-1: 使用Margins, Paddings和 Overflow来实现 第一种方法使用margins, paddings和overflow来迫使列

淘宝分类导航条;纯css实现固定导航栏

效果如下: 页面如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="t

【技能】使用纯CSS+html写出方向箭头,简单大方,好看

使用纯CSS+html写出方向箭头,贴出来就可以用,100%原创 <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> .pointsRule{ display: inline-blo

CSS之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome,当然IE也能看一部分的.那好,下面就一起来看看我们是如何用纯CSS来画这些图形的,如果你也觉得很震撼,推荐给你的朋友吧. 1.正方形 最终效果: CSS代码如下: 复制代码 代码如下: #square { width: 100px; height: 100px; background: red; }