一、介绍before/after

CSS中的before和after伪类选择器早在CSS2时就被引入,改属性被所有主流浏览器所支持了。
before和after顾名思义,分别指的是伪元素在元素前/后添加内容,默认他们是display是inline,但是可以使用CSS设置为block。
应用before/和after也比较简单,举个例子:

a:after {
content: " after ";
display: block;
coloe: red;
}

可以在浏览器看到,a标签元素后面多出了一段文字 after。(在CSS3中伪类元素使用是如a::after的,不过目前两者并无多大区别)。
(伪元素不可通过DOM使用,IE6/7对该属性不支持)

after和before伪元素有许多用处,还可以简化代码,比如可以写一个计数器、tip小三角形、清除浮动……特别在CSS3中新加的一些属性更是丰富了它的应用,这里有个小教程,用before/after伪元素来实现一个纯CSS3的tooltip。

二、tooltip实现教程

demo:https://hwlv.github.io/fullpage/test/after.html

这里我们主要是用草after/before伪元素content中的attr属性,先来看看实现后的样子:

1.实现样式

2.代码

鼠标hover button之后,出现一个tooltip小标签。
代码先贴上:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
<style>
.btn {
position: relative;
display: block;
margin: 200px auto;
width: 200px;
padding: 10px 20px;
font-size: 20px;
background: #fff;
color: #6bdf4e;
border: 1px solid #6bdf4e;
cursor: pointer;
}
.btn::after {
content: attr(data-tip);
display: none;
position: absolute;
padding: 5px 10px;
left: 50%;
bottom: 100%;
margin-bottom: 12px;
transform: translateX(-50%);
font-size: 16px;
background: #000;
color: #fff;
cursor: default;
}
.btn::before {
content: " ";
position: absolute;
display: none;
left: 50%;
bottom: 100%;
transform: translateX(-50%);
margin-bottom: 3px;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 9px solid #000;
}
.btn:hover::after,
.btn:hover::before {
display: block;
}
</style>
</head>
<body>
<button class="btn" data-tip="ToolTip">button</button>
</body>
</html>

3.实现过程

  • 一. 创建一个标签,然后在标签内加上一个属性 data-[] = “ToolTip”,[]表示的是自定义的属性名称,引号里面是tooltip需要显示的内容。
  • 二. 给标签加样式,position设置为relative,因为之后伪元素需要设置绝对定位来设置位置。
  • 三. 给after加样式,after是需要显示的tooltip,通过content: attr(data-tip);拿到需要显示的内容,设置绝对定位,调整位置。
  • 四. 给before加样式,before需要设置成一个小三角tip放在after下面。
  • 五. 给after/before的display都设置为none。
  • 六. 给需要tooltip的元素伪类选择hover时设置after/before的display为block,这里需要注意的是after/before默认display为inline,所以我们前面创建调试是display应该先设置为block。
  • 七. 打开浏览器查看效果

html tip实现的更多相关文章

  1. 项目经理排期的几个tip

    互联网敏捷开发的流程可以演绎出很多玩法,但最好都遵循以下几个tip: 1, 对项目经理最重要的一条是,通读所有需求文档,跟相关PM进行彻底沟通,把需求都搞熟搞透,防止漏排任务: 2, Stroy拆分要 ...

  2. 基于1.3.3版本tooltip的datagrid单元格tip实现

    基于1.3.3版本tooltip的datagrid单元格tip实现 2013年05月25日 ⁄ datagrid ⁄ 共 6122字 ⁄ 评论数 26 ⁄ 被围观 7,033 views+ 文章目录 ...

  3. Windows Universal 应用 – Tip Calculator

    声明 以下内容取材于 Bob Tabor 的课程<Windows Phone 8.1 Development for Absolute Beginners>,链接地址为:http://ww ...

  4. 2015.5.2-2015.5.8 Tip jQuery ,前端组件库,inline-block元素间距等

    有忙于它事,故延迟了,但在坚持! 1.Tip jQuery   2.给span加display: inline-block; 怎样能对齐? 解决方法:vertical-align: bottom:   ...

  5. 封装tip控件

    在界面上有时需要显示一个提示,大多的前端框架都把提示做成一个带有小尖角的提示框,因此自己也仿照了实现了一下,效果图如下: 尖角的实现很简单的,一般都是通过css将div的宽高设置为0,然后将尖角朝向的 ...

  6. 实现tip浮层

    实现简单的tip浮层: html代码: <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  7. [js开源组件开发]tip提示组件

    tip提示组件 常见的应用场景中,总是难免会遇到提示信息,比如显示不完全时需要鼠标移上去显示title,比如验证时的错误提示,比如操作按钮的辅助说明等,所以我独立出来了一个小的js组件,tip提示组件 ...

  8. Java程序性能优化Tip

    本博客是阅读<java time and space performance tips>这本小书后整理的读书笔记性质博客,增加了几个测试代码,代码可以在此下载:java时空间性能优化测试代 ...

  9. Ext.js中的tip事件实际使用

    Ext.onReady(function () { // Init the singleton. Any tag-based quick tips will start working. Ext.ti ...

  10. 关于iChartjs在移动端提示框tip显示不正常的解决方法

    最近项目需要使用手机图表,但是找了很久都没找到专门为移动端开发的图表,只能找一些能兼容移动端的图表控件,今天就讲讲关于iChartjs这个图形库的一点问题. 问题 iChartjs的提示框tip的显示 ...

随机推荐

  1. C#打印九九乘法表

    C#打印九九乘法表... ---------------------------------- using System; using System.Collections.Generic; usin ...

  2. LaTeX的表格插入与排版

    关于LaTex中的图表问题的几篇有用的文章 Graphics and Colour with LaTeX  有关在LaTex中插图和使用颜色的在线指导. Figure'ing and Picture' ...

  3. 微信原图泄露的只能是 Exif ,你的隐私不在这!!!

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章. 未经允许,不得转载. 序 最近很多公众号都推送了关 ...

  4. jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}

    2.1.bug通过索引查询 这里的#13335是bug的索引,如何查询呢? 第一步,浏览器地址栏输入"https://bugs.jquery.com/". 第二步,在网页的搜索框里 ...

  5. Hibernate注解-类级别注解

  6. Tomcat闪退的问题

    问题:双击tomcat bin下的startup.bat,tomcat的窗口一闪而过,未成功启动: 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息就会导致了tomcat的闪退 ...

  7. [2017-08-21]Abp系列——如何使用Abp插件机制(注册权限、菜单、路由)

    本系列目录:Abp介绍和经验分享-目录 Abp的模块系统支持插件机制,可以在指定目录中放置模块程序集,然后应用程序启动时会搜索该目录,加载其中所有程序集中的模块. 如何使用这套机制进行功能插件化开发? ...

  8. 性能测试系列学习 day1

    性能测试的最终目标是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试: (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策: (2 ...

  9. snowflake主键生成策略

    1.snowflake简介 在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同的特性,比如像并发巨大的业务要求ID生成效率高,吞吐大:比如某些银 ...

  10. SVG图案

    前面的话 给SVG元素应用填充和描边,除了使用纯色和渐变外,还可以使用图案.本文将详细介绍SVG图案 概述 <pattern>可以实现重复的效果,在canvas中被翻译为模式,而在SVG中 ...