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制作卡片式图片的方法
Jul 08 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
Jan 04 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
Mar 29 HTML / CSS
CSS3 实现穿梭星空动画
Nov 13 HTML / CSS
HTML5移动开发图片压缩上传功能
Nov 09 HTML / CSS
HTML5 video视频字幕的使用和制作方法
May 03 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
Jul 10 HTML / CSS
HTML5 中新的全局属性(整理)
Jul 31 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
Mar 22 HTML / CSS
a标签下载链接的简单实现
Sep 13 HTML / CSS
HTML5制作表格样式
Nov 15 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
Mar 26 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借助phpmailer发送邮件
2015/05/11 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
js实现开关灯效果
2020/03/30 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Python变量赋值的秘密分享
2018/04/03 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python实现多线程端口扫描
2019/08/31 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
python爬取youtube视频的示例代码
2021/03/03 Python
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
2015年生产车间工作总结
2015/04/22 职场文书
酒店员工手册范本
2015/05/14 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
maven依赖的version声明控制方式
2022/01/18 Java/Android
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis