首先定义一个

  1. <p class="speech"></p>

先给外层的容器添加样式:

  1. p.speech
  2. {
  3. position: relative;
  4. width: 200px;
  5. height: 100px;
  6. text-align: center;
  7. line-height: 100px;
  8. background-color: #fff;
  9. border: 8px solid #666;
  10. -webkit-border-radius: 30px;
  11. -moz-border-radius: 30px;
  12. border-radius: 30px;
  13. -webkit-box-shadow: 2px 2px 4px #888;
  14. -moz-box-shadow: 2px 2px 4px #888;
  15. box-shadow: 2px 2px 4px #888;
  16. }

没有什么特别复杂的,主要的核心就在postion:relative,用来定位对话浮层的。我们还需要一些Mozilla和webkit的属性来完成圆角和阴影,IE8以下的浏览器看不到这些属性,只是显示一个框,不影响总体的效果。

我们现在需要创建对话浮层下面的那个三角形的指向标志了。不使用图片,我们使用CSS边框来完成这个效果。看看下面这个用不同颜色边框完成的效果。

我们把高度和宽度减少到0px,然后给边框使用不同的大小,看看效果:

为了最后能做成指示标志的样子,我们把上边距和左边距设置为solid,下边距和右边距设置为透明:

但是我们把这个放哪呢?还好,我们可以使用CSS的伪类:before和:after来生成,所以:

  1. p.speech:before
  2. {
  3. content: ' ';
  4. position: absolute;
  5. width: 0;
  6. height: 0;
  7. left: 30px;
  8. top: 100px;
  9. border: 25px solid;
  10. border-color: #666 transparent transparent #666;
  11. }

现在三角形的标识就定位在我们的气泡下面了。另外,不要费事去考虑这个元素的阴影,他会定位在透明边界的旁边,而不是看到的图形的旁边。

我们还需要移除三角形的一部分。我们可以在里面放置一个白色的小三角形来达到这个效果。

  1. p.speech:after
  2. {
  3. content: ' ';
  4. position: absolute;
  5. width: 0;
  6. height: 0;
  7. left: 38px;
  8. top: 100px;
  9. border: 15px solid;
  10. border-color: #fff transparent transparent #fff;
  11. }

我们的不使用图片的对话气泡就完成了:

另外,我们还可以使用:before和:after伪类来做很多其他的事情,比如,一个思考气泡也可以通过这样办法完成:

首先也是建一个

  1.  
  1. <p class="thought">I think...</p>
  1.  

css代码:

  1. p.thought{
  2. position: relative;
  3. width: 130px;
  4. height: 100px;
  5. text-align: center;
  6. line-height: 100px;
  7. background-color: #fff;
  8. border: 8px solid #666;
  9. -webkit-border-radius: 58px;
  10. -moz-border-radius: 58px;
  11. border-radius: 58px;
  12. -webkit-box-shadow: 2px 2px 4px #888;
  13. -moz-box-shadow: 2px 2px 4px #888;
  14. box-shadow: 2px 2px 4px #888;
  15. }
  16.  
  17. p.thought:before, p.thought:after{
  18. content: '';
  19. position: absolute;
  20. left: 10px;
  21. top: 70px;
  22. width: 40px;
  23. height: 40px;
  24. background-color: #fff;
  25. border: 8px solid #666;
  26. -webkit-border-radius: 28px;
  27. -moz-border-radius: 28px;
  28. border-radius: 28px;
  29. z-index:5;
  30. }
  31.  
  32. p.thought:after{
  33. position: absolute;
  34. width: 20px;
  35. height: 20px;
  36. left: 5px;
  37. top: 100px;
  38. -webkit-border-radius: 18px;
  39. -moz-border-radius: 18px;
  40. border-radius: 18px;
  41. z-index:6;
  42. }

最新实现效果:

CSS3效果:实现气泡效果的更多相关文章

  1. 不用图片,纯Css3实现超酷的类似iphone的玻璃气泡效果

    最近在一个私活做手机项目时候,需要实现一个类似ios 6中短信那样的气泡效果. 这里分享下实现心得,希望能给大家一点启发. 首先分析下iphone的气泡效果有一下特点 1. 四面圆角 2. 界面上向下 ...

  2. css实现聊天气泡效果

      --------------------------------------- css功能强大,能实现很多炫 酷的效果,今天给大家分享 用css3绘制聊天气泡的方法: -------------- ...

  3. css3图片模糊过滤效果

    css3图片过滤效果,鼠标放上后其它图片模糊,鼠标所在位置的图片是清淅的,有效索引出当前的图片,对图片的模糊处理是本特效的亮点,你完全可以将模糊的效果应用于其它的图片特效中,你同样也可借此代码研究一下 ...

  4. 基于css3的轮播效果

    花了一上午来调整页面在ie10上的显示问题,sass编译生成的css文件在ie内核下一直不能正确加载,果然兼容性的问题还需要好好研究.转入正题,用css3实现轮播效果主要是基于css3的framewo ...

  5. 24个 HTML5 & CSS3 下拉菜单效果及制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ...

  6. 学习使用 jQuery & CSS3 制作照片堆栈效果

    在这个小实验中,我们使用 jQuery & CSS3 创建了一个交互式的照片堆栈效果.提供了一些模拟现实的互动的可能性给用户.这个想法的思路是:有一些照片在桌面上可以拖放一样,堆放和删除,每个 ...

  7. 3D Grid Effect – 使用 CSS3 制作网格动画效果

    今天我们想与大家分享一个小的动画概念.这个梦幻般的效果是在马库斯·埃克特的原型应用程序里发现的​​.实现的基本思路是对网格项目进行 3D 旋转,扩展成全屏,并呈现内容.我们试图模仿应用程序的行为,因此 ...

  8. css3.0新属性效果在ie下的解决方案(兼容性)

    css3.0增加的新属性,如投影.渐变.旋转.圆角等等!这些新标准属性在ie6.ie7.ie8浏览器版本里得不到很好的支持,相信ie以后的新版本也会支持这些新属性的.目前ie6.ie7.ie8浏览器不 ...

  9. 25个CSS3 渐变和动画效果教程

    随着最新版CSS3渐变和动画功能发布,Web开发者在开发的过程中有了更多的选择.实际上,已经有了一些替代的技术,目的都是使网站的建设变得简易,高效和快速.不过CSS3所提供的渐变功能有着显著的优点,特 ...

  10. CSS3实现时间轴效果

    原文:CSS3实现时间轴效果 最近打开电脑就能看到极客学院什么新用户vip免费一个月,就进去看看咯,这里就不说它的课程怎么滴了,里面实战路径图页面看到了这个效果: 有点像时间轴的赶脚,而且每一块鼠标悬 ...

随机推荐

  1. Jquery 图片走马灯效果原理

    本篇只讲解水平走马灯效果,垂直向上走马灯效果不讲解,原理一样,但是水平走马灯效果有一个小坑.待会讲解 照例先上代码: HTML: <div class="box"> & ...

  2. Jenkins高危代码执行漏洞检测/开源漏洞靶场

    漏洞细节可以参看安全客的文章:https://bbs.ichunqiu.com/thread-22507-1-1.html Jenkins-CLI 反序列化代码执行(CVE-2017-1000353) ...

  3. 关于Android的Service知识点,你知道吗?

    目录 学习Service相关知识点: 概述: Service生命周期: Service的基本用法: 服务. 问:达叔,今日工作累吗? 答:累啊,那么问你,你知道Android中的 Service(服务 ...

  4. python中使用双端队列解决回文问题

    双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型. 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行. 双端队列可以在 ...

  5. Testing - 软件测试知识梳理 - 基础概念

    测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...

  6. js中break、continue和return的一般用法总结

    break break :终止break的整个循环体,包括内部所有循环.但对循环体外部的循环不影响. for(let i = 0;i<2;i++){ for(let j = 0;j<2;j ...

  7. css回归测试工具:backstopjs

    最近在看公开课,一位老师讲了一个自动化的工具,backstopjs,可以自动的对比UI出的图与前端写好的图,不一致的地方会标出,挺好用的,但是写的过程中也会遇到一些问题,现在写出来,记录一下 首先,要 ...

  8. BitMap位图与海量数据的理解与应用

    1. Bit Map算法简介 来自于<编程珠玑>.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空 ...

  9. thymeleaf 的使用

    thymeleaf 语法详解1.变量输出: th:text :在页面中输出某个值 th:value :将一个值放到input标签中的value中.2.判断字符串是否为空 ①:调用内置对象一定要用# ② ...

  10. 详解C#异常处理

    一.程序运行时产生的错误通过使用一种称为异常(Exception)的机制在程序中传递,通过异常处理(Exception Handling)有助于处理程序运行过程中发生的意外或异常情况:异常可由CLR和 ...