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 相关文章推荐
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 HTML / CSS
CSS超出文本指定宽度用省略号代替和文本不换行
May 05 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
Mar 01 HTML / CSS
Html5新特性用canvas标签画多条直线附效果截图
Jun 30 HTML / CSS
浅谈HTML5新增和废弃的标签
Apr 28 HTML / CSS
canvas实现烟花的示例代码
Jan 16 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
Feb 25 HTML / CSS
css animation配合SVG制作能量流动效果
Mar 24 HTML / CSS
background-position百分比原理详解
May 08 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 HTML / CSS
POST提交数据常见的四种方式
Jan 18 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网页病毒清除类
2014/12/08 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
使用正则替换变量
2007/05/05 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
javascript window对象属性整理
2009/10/24 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
早读课迟到检讨书
2014/09/25 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
质量保证书格式模板
2015/02/27 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书