HTML5实现QQ聊天气泡效果


Posted in HTML / CSS onJune 26, 2017

今天自己用 HTML/CSS 做了个类似QQ的聊天气泡,以下是效果图:

HTML5实现QQ聊天气泡效果

以下说下关键地方的样式设置。然后贴出html和css代码(不多)。

步骤1:布局
 

消息?裼?iv+float布局,每条消息用一个DIV标签包裹,里面再放两个DIV分别用来包裹用户图标和用户消息内容。左?认?ⅲ?惹宄?《??缓笊柚 float:left。这样用户图标和消息内容就能够显示在同一行了,当中用户图标在左边,消息内容紧邻着用户图标。

右?认?ⅲ?嗤?惹宄?《?H缓笊柚 float:right,这样用户图标和消息显示在同一行了。当中图标在最右边。图标左?仁窍?ⅰ?/p>

HTML5实现QQ聊天气泡效果

步骤2:设置圆角矩形

border-radius:7px;

HTML5实现QQ聊天气泡效果

步骤3:三角形箭头
&n

将DIV的宽度和高度设置为0,设置边框宽度,能够使其表现出一个由四个三角形组成的矩形,每一个三角形的颜色和大小能够通过设置border宽度和颜色设置。

这里将当中三个三角形颜色设置为透明。仅仅留下一个三角形可见。

HTML5实现QQ聊天气泡效果

.triangle{
        width: 0px;
        height: 0px;
        border-width: 15px;
        border-style: solid;
        border-color: red blue green gold;
    }

HTML5实现QQ聊天气泡效果

.triangle{
        width: 0px;
        height: 0px;
        border-width: 15px;
        border-style: solid;
        border-color: transparent transparent transparent red;
    }

关键点4:三角形尾随矩形框

使用相对定位。能够使三角形始终固定在矩形框的边上。

position:relative;

HTML5实现QQ聊天气泡效果

所有代码:

<html>
<head>
<style>
  /* bubble style */
        .sender{
            clear:both;
        }
        .sender div:nth-of-type(1){
            float: left;
        }
        .sender div:nth-of-type(2){
            background-color: aquamarine;
            float: left;
            margin: 0 20px 10px 15px;
            padding: 10px 10px 10px 0px;
            border-radius:7px;
        }

        .receiver div:first-child img,
        .sender div:first-child img{
            width:50px;
            height: 50px;
        }

        .receiver{
            clear:both;
        }
        .receiver div:nth-child(1){
            float: right;
        }
        .receiver div:nth-of-type(2){
            float:right;
            background-color: gold;
            margin: 0 10px 10px 20px;
            padding: 10px 0px 10px 10px;
            border-radius:7px;
        }

        .left_triangle{
            height:0px;  
            width:0px;  
            border-width:8px;  
            border-style:solid;  
            border-color:transparent aquamarine transparent transparent;  
            position: relative;
            left:-16px;
            top:3px;
        }

        .right_triangle{
            height:0px;  
            width:0px;  
            border-width:8px;  
            border-style:solid;  
            border-color:transparent transparent transparent gold;  
            position: relative;
            right:-16px;
            top:3px;
        }

  </style>
</head>
<body>
<!-- Left -->
<div class="sender">
      <div>
          <img src="chatTemplateExample2_files/cat.jpg">
      </div>
  <div>
      <div class="left_triangle"></div>
      <span> hello, man! </span>
   </div>
  </div>
<!-- Right -->
  <div class="receiver">
      <div>
          <img src="chatTemplateExample2_files/cat.jpg">
      </div>
   <div>
        <div class="right_triangle"></div>
        <span> hello world </span>
   </div>
  </div>  
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3线性渐变简单实现以及该属性在浏览器中的不同
Dec 12 HTML / CSS
纯CSS实现设置半个字符的样式
Jul 03 HTML / CSS
css3实现3D色子翻转特效
Dec 23 HTML / CSS
CSS3实现复选框动画特效示例代码
Sep 27 HTML / CSS
html5定位并在百度地图上显示的示例
Apr 27 HTML / CSS
HTML5所有标签汇总及标签意义解释
Mar 12 HTML / CSS
Html5实现二维码扫描并解析
Jan 20 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
Mar 10 HTML / CSS
Html5百叶窗效果的示例代码
Dec 11 HTML / CSS
详解HTML5 Canvas标签及基本使用
Jan 10 HTML / CSS
CSS 左边固定宽右边自适应的6种方法
May 15 HTML / CSS
css弧边选项卡的项目实践
May 07 HTML / CSS
详解H5本地储存Web Storage
Jul 03 #HTML / CSS
H5仿微信界面教程(一)
Jul 05 #HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
Jul 06 #HTML / CSS
html5 input元素新特性_动力节点Java学院整理
Jul 06 #HTML / CSS
html5标记文字_动力节点Java学院整理
Jul 11 #HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
Jul 06 #HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
Jul 06 #HTML / CSS
You might like
杏林同学录(三)
2006/10/09 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
fastadmin中调用js的方法
2019/05/14 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python 中字典嵌套列表的方法
2018/07/03 Python
python远程连接MySQL数据库
2019/04/19 Python
Django缓存系统实现过程解析
2019/08/02 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
求职信写作要突出重点
2014/01/01 职场文书
教师辞职报告范文
2014/01/20 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
单位收入证明范本
2015/06/18 职场文书
nginx.conf配置文件结构小结
2022/04/08 Servers