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 按钮 利用css3实现超酷下载按钮
Mar 18 HTML / CSS
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
Jun 06 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
Oct 20 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
Dec 29 HTML / CSS
用CSS3绘制三角形的简单方法
Jul 17 HTML / CSS
如何使用html5与css3完成google涂鸦动画
Dec 16 HTML / CSS
html5-Canvas可以在web中绘制各种图形
Dec 26 HTML / CSS
html5实现canvas阴影效果示例
May 07 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
Jun 16 HTML / CSS
解决HTML5手机端页面缩放的问题
Oct 27 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
Jun 10 HTML / CSS
html5 外链式实现加减乘除的代码
Sep 04 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
谈谈PHP语法(3)
2006/10/09 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
smarty中post用法实例
2014/11/28 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
Smarty模板语法详解
2019/07/20 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
python单元测试unittest实例详解
2015/05/11 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
python的常用模块之collections模块详解
2018/12/06 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
餐饮加盟计划书
2014/01/10 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
婚宴父母致辞
2015/07/27 职场文书
聘任合同书
2015/09/21 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书