这是最终实现的效果,类似于微信对话框的样式。

分析一下这个对话框的结构,由一个小三角形和一个长方形构成。长方形很容易就可以实现,重点是如何用CSS3做出一个小三角形。

一、如何生成一个三角形

 总结:三角形是由设置宽度高度为0,由边框构成的正方形,分别设置边框四个边的样式,得到四个三角形拼凑在一起的效果,再设置其他方向上的边框颜色为透明色。

1、首先先做一个正方形,这个正方形不是一般的元素加上背景颜色实现的,而是对一个元素将其长和宽都设置0px,这样就相当于盒子的内容区消失。content:" ";

.box{
border:50px solid #aff;
width: 0px;height:0px;
margin:50px auto;
}

 2、然后再单独设置每一条边框的样式,就可以看到出现了四个三角形拼凑在一起的效果。

.box{
border-top:100px solid #aff;
border-left:100px solid #faf;
border-right:100px solid #afa;
border-bottom:100px solid #ffa;
width: 0px;height:0px;margin:50px auto;
}

3、获得单个的三角形,取一半边框,其他边框的颜色设置为透明 transparent

这样就获得了一个三角形。

二、制作一个对话框

对话框设置圆角border-radius;文字距离边框还有一定距离所以要设置内边距 padding;文本内容垂直居中line-height;

::before伪元素在元素前面添加内容;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.main{
background-color: #6a6;
margin:50px auto;padding:16px;
width:200px;height:25px;
border-radius: 10px;line-height: 25px;
position: relative;
}
.main::before{
content:" ";
border-left: 0px solid #6a6;
border-top:10px solid transparent;
border-right:10px solid #6a6;
border-bottom:10px solid transparent;
position: absolute;left:-10px;top:18px;
}
/*::before伪元素在元素前面添加内容;*/
</style>
</head>
<body>
<div class="main">Hello World ! </div>
</body>
</html>

最新文章

  1. 2 Unique Binary Search Trees II_Leetcode
  2. 20145220&amp;20145209&amp;20145309信息安全系统设计基础实验报告(3)
  3. 关于tag标签系统的实现
  4. hibernate集成
  5. 笨小猴 2008年NOIP全国联赛提高组
  6. cocos2d-x触摸事件优先级的探究与实践
  7. 73、django之setting配置汇总
  8. python 类知识点总结
  9. 搭建企业级PPTP服务器
  10. [C++]PAT乙级1009. 说反话 (17/20)
  11. 十大经典排序算法+sort排序
  12. Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令
  13. ZKWeb网页框架1.5正式发布
  14. java客户端调用ftp上传下载文件
  15. 利用grep命令查找字符串分析log文件的一次实践
  16. 实现Django ORM admin view中model字段choices取值自动更新的一种方法
  17. 51Nod 1521 一维战舰
  18. zookeeper 学习命令
  19. AHOI2005航线规划 bzoj1969(LCT缩点)
  20. 04.CSS的继承性和层叠性

热门文章

  1. 《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
  2. SAP屏幕事件的控制
  3. ETF替代规则
  4. Linux(Ubuntu)常用命令 &amp; vim基本操作
  5. suitecrm配置(nginx设置)
  6. Command line is too long. Shorten command line for testMLDome1 or also for Application default configuration
  7. .net core 学习小结之 自定义JWT授权
  8. 深入理解java:2.1. volatile的使用及其原理
  9. spark性能调优03-shuffle调优
  10. O-超大型LED显示屏