博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯css实现漂亮又健壮的tooltip
阅读量:5950 次
发布时间:2019-06-19

本文共 1815 字,大约阅读时间需要 6 分钟。

前言

tooltip的实现有多种方式,下面是一个tooltip成长史。

预览

原始版

最简单的莫过于就用原始title属性,像这样:

缺点是体验是差了点,并且鼠标移上去,过一会儿才响应。

改进版

于是改进了下面这个版本

html部分

鼠标移动到这
提示文本

css部分

.btn {  width: 100px;  position: relative;  display: inline-block;  background-color: gold;  padding: 5px;  cursor: pointer;}.btn .tip {  display: none;  width: 100px;  background-color: black;  color: #fff;  text-align: center;  padding: 5px 0;  font-size: 12px;  /* 垂直居中 */  position: absolute;  top: 50%;  transform: translateY(-50%);  left: 118px;  z-index: 1;}.btn:hover .tip {  display: block;}

一开始设置tip是隐藏display: none;,当鼠标移上去,将tip样式设置为display: block;来显示。

终极版

其实改进版一般用也够了,但同事老爷们觉得不够漂亮,逼格不高,没有动画。

无意间逛到百度云管理后台页面,发现了一排漂亮的tooltip,这不正是我需要的吗?窃喜!于是研究一番,拿来即用。

html部分:

css部分:

.btn {      position: relative;      display: block;      margin: 100px auto;      padding: 10px;      font-size: 14px;      background: #fff;      color: green;      border: 1px solid green;      cursor: pointer;    }    [tip]:after {      content: attr(tip);      visibility: hidden;      /* 实现垂直居中 */      position: absolute;      top: 50%;      transform: translate(-5px, -50%);      transition: all .3s;      left: 100%;      opacity: 0;      /* 空白问题 */      white-space: pre;      font-size: 16px;      padding: 5px 10px;      background-color: rgba(18,26,44,0.8);      color: #fff;      box-shadow: 1px 1px 14px rgba(0,0,0,0.1)    }    [tip]:hover {      /* ie兼容 */      overflow: visible    }    .btn:hover:after {      opacity: .8;      transition: all .3s;      transform: translate(5px, -50%);      visibility: visible;      display: block;    }

首先,在标签中加上属性tip,css样式中用content: attr(tip);获取属性值。

默认设置tip隐藏visibility: hidden;
transform: translate(-5px, -50%);实现居中和偏移效果。
动画时间设置为0.3s:transition: all .3s;
注意white-space: pre;是为了考虑到tip中有可能带有空格,那么也需要将空格显示出来。

转载地址:http://uosxx.baihongyu.com/

你可能感兴趣的文章
Android 内存管理 &Memory Leak & OOM 分析
查看>>
[转]html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
查看>>
[水]三个数学的小技巧题
查看>>
mysql中查看数据库的版本,什么版本
查看>>
[leetcode-342-Power of Four]
查看>>
MongoDB3.0 创建用户
查看>>
2017-2018-1 20155319 《信息安全系统设计基础》第3周学习总结
查看>>
express 3.0.x 中默认不支持flash() 的解决方法
查看>>
uva-111-dp
查看>>
算法学习1——矩阵转置
查看>>
Tcl与Design Compiler (九)——综合后的形式验证
查看>>
跨页数据传递
查看>>
Linux查看系统负载(CPU和MEM考虑)
查看>>
Codeforces Round #249 (Div. 2) B. Pasha Maximizes
查看>>
【Android游戏开发十一】手把手让你爱上Android sdk自带“9妹”(9patch 工具),让Android游戏开发更方便!...
查看>>
【查找算法】基于存储的查找算法(哈希查找)
查看>>
JavaWeb网上图书商城完整项目--day02-10.提交注册表单功能之页面实现
查看>>
Tomcat组件梳理--Server
查看>>
记录一下这次web实训的两个网站
查看>>
POJ-1830 开关问题 高斯消元
查看>>