热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3--动态实现ToolTip效果(实例)

效果图如下↓↓↓↓↓(知识点见代码注释)HTML1<!DOCTYPEhtml>2<html>3<head>4

效果图如下↓↓↓↓↓  (知识点见代码注释)

HTML

 1 DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>CSS3实现鼠标悬停显示消息提示框title>
6 <meta http-equiv="X-UA-compatible" contnet="IE=edge">
7 <meta name="viewport" content=" initial-scale="1">
8 <link rel="stylesheet" href="css/style.css">
9 <link rel="stylesheet" href="css/font-awesome.min.css">
10 head>
11 <body>
12 <div class="nav">
13 <ul>
14 <li>
15 <a href="#" class="tooltip tooltip-effect-1">Home
16
17 <span class="tooltip-content">
18
19 <i class="fa fa-camera fa-fw">i>
20 span>
21 a>
22 li>
23 <li>
24 <a href="#" class="tooltip tooltip-effect-2">About me
25 <span class="tooltip-content"><i class="fa fa-heartbeat fa-fw">i>span>
26 a>
27 li>
28 <li>
29 <a href="#" class="tooltip tooltip-effect-3">Photography
30 <span class="tooltip-content"><i class="fa fa-diamond fa-fw">i>span>
31 a>
32 li>
33 <li>
34 <a href="#" class="tooltip tooltip-effect-4">Work
35 <span class="tooltip-content"><i class="fa fa-cogs fa-fw">i>span>
36 a>
37 li>
38 <li>
39 <a href="#" class="tooltip tooltip-effect-5">Contact
40 <span class="tooltip-content"><i class="fa fa-comments fa-fw">i>span>
41 a>
42 li>
43 ul>
44 div>
45 body>
46 html>

CSS

  1 html {
2 width:100%;
3 height:100%;
4 /*屏幕旋转时文字大小不发生改变;*/
5 -webkit-text-size-adjust:none;
6 }
7 body {
8 margin: 0;
9 padding: 0;
10 width:100%;
11 height:100%;
12 background: #47c9af;
13 color:#74777b;
14 font-weight: 300;
15 font-size: 1.5em;
16 font-family:"Raleway","Arial";
17 }
18 ul {
19 list-style: none;
20 padding: 0;
21 margin: 0;
22 }
23 a:link,a:visited,a:focus {
24 text-decoration: none;
25 outline: none;
26 }
27
28 *,*:after,*:before {
29 /*padding(填充)和border(边框)都不要影响盒子原先设定的大小;*/
30 -webkit-box-sizing:border-box;
31 }
32 *:after,*:before {
33 display: block;
34 content:"";
35 }
36 /*清除浮动*/
37 *:after {
38 clear:both;
39 }
40
41 /*Navgaitor*/
42 .nav {
43 width:800px;
44 height:300px;
45 margin:200px auto;
46 }
47 .nav li {
48 display: inline-block;
49 margin:0 1em;
50 }
51 .tooltip {
52 display: inline-block;
53 font-weight: 700;
54 color:rgba(0,0,0,0.3);
55 padding:0.15em 0.25em 0 0;
56 position: relative;
57 z-index: 999;
58 transition: 0.4s;
59 }
60 .tooltip:hover {
61 color:rgba(255,255,255,1);
62 }
63 .tooltip-content {
64 position: absolute;
65 z-index: 9999;
66 width:80px;
67 height:80px;
68 /*span相对于父元素a垂直居中:
69 left:50%;span的左侧距离a的左侧是a宽度一半的距离;
70 margin-left:-40px;左移相对于自身宽度的一半;
71 bottom:100%;span的底部距离a的底部是a高度一倍的距离,刚好在a的正上方;
72 */
73 left:50%;
74 margin-left: -40px;
75 bottom:100%;
76 margin-bottom: 20px;
77 text-align: center;
78 padding-top: 22px;
79 /*应用svg文件做背景图片;*/
80 background:url(../img/tooltip1.svg) no-repeat center center;
81 opacity: 0;
82 transition: 0.4s;
83 }
84 .tooltip-content i {
85 font-style: normal;
86 font-size: 30px;
87 color:#47c9af;
88 opacity: 0;
89 transition: 0.3s;
90 }
91 .tooltip-effect-1 .tooltip-content {
92 /*
93 translate3d(0,10px,0):元素沿Y轴向下移动10px;
94 rotate3d(1,1,1,45deg):元素分别在X轴,Y轴和Z轴旋转45°;
95 transform-origin:50% 100%;元素以本身计算出的位置为中心点;
96 */
97 transform: translate3d(0,10px,0) rotate3d(1,1,1,45deg);
98 transform-origin :50% 100%;
99 }
100 .tooltip-effect-1 .tooltip-content i {
101 /*
102 元素在X轴和Y轴上缩放0倍(最小化),在Z轴缩放1倍(不缩放);
103 */
104 transform:scale3d(0,0,1);
105 }
106 .tooltip-effect-2 .tooltip-content {
107 transform: translate3d(0,20px,0);
108 }
109 .tooltip-effect-2 .tooltip-content i {
110 transform:translate3d(0,15px,0);
111 }
112 .tooltip-effect-3 .tooltip-content {
113 transform:translate3d(0,10px,0) rotate3d(0,1,0,90deg);
114 transform-origin:50% 100%;
115 }
116 .tooltip-effect-3 .tooltip-content i {
117 transform:scale3d(0,0,1);
118 }
119 .tooltip-effect-4 .tooltip-content {
120 transform:translate3d(0,-20px,0);
121 }
122 .tooltip-effect-4 .tooltip-content i {
123 transform:translate3d(0,20px,0);
124 }
125 .tooltip-effect-5 .tooltip-content {
126 transform:scale3d(0,0,1);
127 transform-origin:50% 100%;
128 }
129 .tooltip-effect-5 .tooltip-content i {
130 transform:translate3d(0,20px,0);
131 }
132 /*划过效果,所有效果归位0;*/
133 .tooltip:hover .tooltip-content,
134 .tooltip:hover .tooltip-content i {
135 opacity:1;
136 transform:translate3d(0,0,0) rotate3d(1,1,1,0) scale3d(1,1,1);
137 }

注:Icon字体引用自 Font Awesome Icons 下载链接 课程链接

 

svg文件(复制以下代码到编辑器,然后保存文件后缀名为.svg)

 1 xml version="1.0" encoding="utf-8"?>
2
3 DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4 <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5 viewBox="0 0 80 90" enable-background="new 0 0 80 90" xml:space="preserve">
6 <g>
7 <path fill="#FFffff" d="M39.8,89.5c0,0.2,0.4,0.2,0.4,0c1.2-6.7,7.4-11.8,14.8-11.8H25C32.4,77.7,38.6,82.8,39.8,89.5z"/>
8 <circle fill="#FFffff" cx="40" cy="40.3" r="40"/>
9 g>
10 svg>

 


推荐阅读
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • SVG画布HTML5提供两种强有力的“画布”:SVG和Canvas。SVG的特点:SVG绘制的是矢量图,因此对图像进行放大不会失真基于XM ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
  • CSS3中如何使用background-size定义背景图片大小
    CSS3中如何使用background-size定义背景图片大小?针对这个问题,今天小编总结这篇有关background-size属性的文章,可供感兴趣的小伙伴们参考借鉴 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
  • 深入解析:FlameGraph 火焰图在性能分析中的应用
    本文详细介绍了 FlameGraph 火焰图作为性能分析工具的原理、使用方法及其应用场景,帮助开发者更好地理解和利用这一强大的可视化工具。 ... [详细]
  • 作为一名CSS初学者,我在博客园中尝试通过CSS美化页面,特别是为超链接添加图标,以提升阅读体验。本文将分享如何使用CSS和字体图标库来实现这一功能。 ... [详细]
author-avatar
-VIVEN-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有