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 相关文章推荐
使用CSS实现阅读进度条
Feb 27 HTML / CSS
CSS类名支持中文命名的示例
Apr 04 HTML / CSS
使用CSS禁止textarea调整大小功能的方法
Mar 13 HTML / CSS
css3+伪元素实现鼠标移入时下划线向两边展开的效果
Apr 25 HTML / CSS
浅谈css3中calc在less编译时被计算的解决办法
Dec 04 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
Oct 21 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
Jul 16 HTML / CSS
HTML5本地存储之Web Storage应用介绍
Jan 06 HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
Jan 09 HTML / CSS
HTML5本地存储和本地数据库实例详解
Sep 05 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
css3 选择器
May 11 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
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
python输入错误密码用户锁定实现方法
2017/11/27 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
python tkinter基本属性详解
2019/09/16 Python
Django继承自带user表并重写的例子
2019/11/18 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
2013年高中生自我评价
2013/10/23 职场文书
图书室管理制度
2014/01/19 职场文书
村干部培训班主持词
2014/03/28 职场文书
拾金不昧感谢信
2015/01/21 职场文书
诚信高考倡议书
2019/06/24 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书