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实现粒子旋转伸缩加载动画
Apr 22 HTML / CSS
使用简单的CSS3属性实现炫酷读者墙效果
Jan 08 HTML / CSS
css3实现圆锥渐变conic-gradient效果
Feb 12 HTML / CSS
利用简洁的图片预加载组件提升html5移动页面的用户体验
Mar 11 HTML / CSS
HTML5中视频音频的使用详解
Jul 07 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
Dec 09 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
HTML5所有标签汇总及标签意义解释
Mar 12 HTML / CSS
详解HTML5中download属性的应用
Aug 06 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
Sep 10 HTML / CSS
CSS3 制作的图片滚动效果
Apr 14 HTML / CSS
在CSS中使用when/else的方法
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静态新闻列表自动生成代码
2007/06/14 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
学习ExtJS form布局
2009/10/08 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
理解javascript闭包
2015/12/15 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
python k-近邻算法实例分享
2014/06/11 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
python的文件操作方法汇总
2017/11/10 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
单利模式及python实现方式详解
2018/03/20 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python面向对象程序设计示例小结
2019/01/30 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
小溪流的歌教学反思
2014/02/13 职场文书
中学教师教育感言
2014/02/21 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
国防教育标语
2014/10/08 职场文书
Tomcat配置访问日志和线程数
2022/05/06 Servers