利用before、after制作提示框
提示框由两部分组成,框+箭头,箭头则利用伪元素before、after写成。
根据提示框的样式可以看出,上面的箭头由两部分组成:灰色大箭头+蓝色小箭头,蓝色嵌套在灰色里面,于是箭头就有了边框,整体搭配起来也比较好看。
那么这部分是怎么写的呢?
首先把箭头以外的部分写出来,下面是html代码以及它的css样式:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.demo{
width: 200px;
height: 60px;
background-color: #09f;
border:4px solid #ccc;
position: relative;
}
</style>
</head>
<body>
<div class="demo"></div>
</body>
</html>
显然我们还要用before、after为它加上箭头,这样才能起到提示作用,我们先来写外部箭头和内部箭头公共部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">.demo:before,.demo:after{
position: absolute;
width: 0;
height: 0;
content: '';
border:10px solid transparent;
bottom: 100%;
}
</style>
</head>
<body>
<div class="demo"></div>
</body>
</html>
由于这是一个箭头向上的提示框,所以箭头紧贴着上边框,于是就有了bottom:100%的设置;同理,箭头向下,top:100%;箭头向右,left:100%;箭头向左,right:100%;
我们这里用before写外部箭头,after写内部箭头
下面是外部箭头的写法:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.demo:before{
border-bottom-color: #ccc;
border-width: 16px;
left: 50%;
margin-left: -16px;
}
</style>
</head>
<body>
<div class="demo"></div>
</body>
</html>
现在呈现在页面上的效果是这样的:

没问题,下面把内部箭头写出来
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.demo:after{
border-bottom-color: #09f;
border-width: 10px;
left: 50%;
margin-left: -10px;
}
</style>
</head>
<body>
<div class="demo"></div>
</body>
</html>
完成,最终效果就是这样了

下面是全部代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.demo{
width: 200px;
height: 60px;
background-color: #f56;
border:4px solid #ccc;
position: relative;
}
.demo:before,.demo:after{
position: absolute;
width: 0;
height: 0;
content: '';
border:10px solid transparent;
bottom: 100%;
}
.demo:before{
border-bottom-color: #ccc;
border-width: 16px;
left: 50%;
margin-left: -16px;
}
.demo:after{
border-bottom-color: #f56;
border-width: 10px;
left: 50%;
margin-left: -10px;
}
</style>
</head>
<body>
<div class="demo"></div>
</body>
</html>
这是一个箭头向上的提示框,只要修改一下,箭头想朝哪朝那,老方便了似不似<( ̄︶ ̄)>
利用before、after制作提示框的更多相关文章
- 利用react来制作评论框
学习地址:https://my.oschina.net/leogao0816/blog/379488
- 纯css来实现提示框
用js用多了,就疏忽了最基本的css了---用title属性来实现提示框.下面言归正传------如何用css实现提示框: 1.利用title属性来实现鼠标滑过某个元素时,实现提示整段内容的功能(利用 ...
- Qt之透明提示框
简述 经常使用企鹅的小伙伴一定对登录失败的提示框很熟悉,主要涉及窗口透明并添加图标.提示信息.关闭按钮的显示等. 我们可以利用QWidget创建一个提示框,然后通过样式设置我们想要的效果. 简述 效果 ...
- 【 D3.js 高级系列 — 9.0 】 交互式提示框
一般来说,图表中不宜存在过多文字.但是,有时需要一些文字来描述某些图形元素.那么,可以实现一种交互:当用户鼠标滑到某图形元素时,出现一个提示框,里面写有描述文字.这是一种简单.普遍的交互式,几乎适用于 ...
- Bootstrap_Javascript_提示框
一. 结构分析 在Bootstrap框架中的提示框,结构非常简单,常常使用的是按钮<button>标签或者链接<a>标签来制作.不管是使用按钮还是链接来制作提示框,他们都有一个 ...
- Bootstrap提示框
前面的话 提示框是一个比较常见的功能,一般来说是鼠标移动到特定元素上时,显示相关的提示语.本文将详细介绍Bootstrap提示框 基本用法 Bootstrap框架中的提示框,结构非常简单,常常使用的是 ...
- [转]Angular——提示框
本文转自:https://blog.csdn.net/whm18322394724/article/details/80177950 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...
- 【Unity笔记】提示框ToolTips大小自适应,及其闪烁的问题
需求:制作了一个提示框,当鼠标移入背包格子内,显示提示框,且提示框位置跟随鼠标移动.当鼠标移出背包格子,隐藏提示框. 制作提示框ToolTips 因为提示框的大小要求随着显示的文本内容长度而自动大小适 ...
- 提示框,对话框,路由跳转页面,跑马灯,幻灯片及list组件的应用
目录: 主页面的js业务逻辑层 主页面视图层 主页面css属性设置 跳转页面一的js业务逻辑层 跳转页面一的视图层 跳转页面二的视图层 跳转页面三的js业务逻辑层 跳转页面三的视图层 跳转页面三的cs ...
随机推荐
- CC/G++ 学习笔记
CC/G++ 学习笔记 本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细 ...
- [转]Native Java Bytecode Debugging without Source Code
link from:http://www.crowdstrike.com/blog/native-java-bytecode-debugging-without-source-code/index.h ...
- 企业架构研究总结(29)——TOGAF架构内容框架之概述及架构工作产品分类
在TOGAF 9之前的版本中,TOGAF的重点主要集中在企业架构开发方法方面,用于指导其使用者如何在各自的组织中对企业架构进行创建和维护,而对于企业架构的具体内容并没有相关的论述,因而针对早期TOGA ...
- 使用 Aspose.Cells 实现 excel导入
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- ibatis实战之基础环境搭建
关于ibatis的介绍.优缺点,以及ibatis和hibernate的比较再此不在赘述,可参阅其他资料. 一.准备工作 1.下载ibatis软件包http://download.csdn.net/de ...
- Android过滤Logcat输出
logcat和grep配合使用 1.打印特定tag的log,如打印Tag为Adm的Log adb logcat | grep Adm adb logcat | grep - ...
- [置顶] 如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现
传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 上周为360全景项目引入了图片缓存模块.因为是在Android4.0平台以上运作,出于 ...
- Qt Creator+MinGW+boost特殊函数的使用示例
Qt Creator+MinGW+boost特殊函数的使用示例: 先编译和安装boost: bootstrap.bat gcc .\b2 --toolset=gcc --prefix=E:\boost ...
- Laravel5.3 流程粗粒度分析之bootstrap
从laravel入口文件index里面外面不难定位到Illuminate\Foundation\Http\Kernel的handle方法,同样也不难发现handle方法的核心是 $response = ...
- Spring MVC---基于注解的控制器
基于注解的控制器 SpringMVC是一个基于DispatcherServlet的MVC框架,每个请求最先访问的是Dispatcher ...