怎么用纯CSS制作带小三角的tooltip提示框

html-css015

怎么用纯CSS制作带小三角的tooltip提示框,第1张

使用CSS制作小三角形实际就是通过控制块元素的边框来实现的。

例如:

<style>

.triangle-up {

    width: 0

    height: 0

    border-left: 50px solid transparent

    border-right: 50px solid transparent

    border-bottom: 100px solid red

}

.triangle-down {

    width: 0

    height: 0

    border-left: 50px solid transparent

    border-right: 50px solid transparent

    border-top: 100px solid red

}

.triangle-left {

    width: 0

    height: 0

    border-top: 50px solid transparent

    border-right: 100px solid red

    border-bottom: 50px solid transparent

}

.triangle-right {

    width: 0

    height: 0

    border-top: 50px solid transparent

    border-left: 100px solid red

    border-bottom: 50px solid transparent

}

</style>

<div class='triangle-down'></div> <!--向下三角形-->

<div class='triangle-up'></div> <!--向上三角形-->

<div class='triangle-left'></div> <!--向左三角形-->

<div class='triangle-right'></div> <!--向右三角形-->

原理就是设置块元素的三条边透明掉(tranparent)

你可以通过onmouseover事件来show一个内容为title的自定义box给这个box啦定义样式。

------解决方案--------------------------------------------------------<style#tooltip{border:1px solid redbackground:#FF6

position:absolute

padding:1px

color:#333

display:none}</style<script type=text/javascript src=scripts/jquery-1.7.1.min.js</script

<script type=text/javascript

$(function(){var x=10var y=20$(a.tooltip).mouseover(function(e){

this.myTitle=this.title

this.title=

var tooltip=<div id='tooltip'+this.myTitle+</div //创建DIV元素

$(#link).append(tooltip) //追加到文档中

$(#tooltip).css({top: (e.pageY+y) + px,left: (e.pageX+x) + px}).show() //设置X Y坐标, 并且显示

}).mouseout(function(){

this.title=this.myTitle

$(#tooltip).remove() //移除

}).mousemove(function(e){

$(#tooltip).css({top: (e.pageY+y) + px,left: (e.pageX+x) + px})})})</script

<title超链接提示效果</title</head<body<div id=link

<p<a href=# class=tooltip title=这是我的超链接提示1提示1</a</p

<p<a href=# class=tooltip title=这是我的超链接提示2提示2</a</p

<p<a href=# title=这是我的超链接提示1自带提示1</a</p

<p<a href=# title=这是我的超链接提示2自带提示2</a</p</div</bodyjq写的, 你看看是不是你想要的那种效果, 提示框的样式可以自己更改的。。

首先参考了这篇文章: 5行JS自定义title提示效果(Tooltip)

参考后实现如下:

Html: 用了angularjs的ng-repeat

css:

然后发现iPhone手机点击后仍然不显示提示文字。

参考了这篇文章解决了问题。 苹果手机无法识别hover的解决方案

在html页面后面加上

在实现过程中又找到了几个现成的插件亲测可用:

Microtip.css 纯css3 Tooltip工具提示样式

Hint.css 纯CSS实现的Tooltip提示 - Hint.css

纯css3 Tooltip工具提示样式

tootik

之前还尝试使用过jquery-ui的Tooltip,iPhone也是不好用但是发现这篇文章非常好。

解决 Jquery UI Tooltip 用在Select 的BUG

这是我用jquery-ui时的写法,因为给所有document都响应tooltip事件,导致只要有title的都会显示。

文章里这种改法可以过滤我们想要响应hover的到底是什么元素。

这部分内容jQuery-UI 控件上是没有说的,非常有用。

这篇文章没细看

ontouchstart实现手机触屏中的hover效果