这篇文章主要介绍了HTML5实现QQ聊天气泡效果,用 HTML/CSS 做了个类似QQ的聊天气泡,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天自己用 HTML/CSS 做了个类似QQ的聊天气泡,以下是效果图:

以下说下关键地方的样式设置。然后贴出html和css代码(不多)。
步骤1:布局
消息採用p+float布局,每条消息用一个p标签包裹,里面再放两个p分别用来包裹用户图标和用户消息内容。左側消息,先清除浮动,然后设置 float:left。这样用户图标和消息内容就能够显示在同一行了,当中用户图标在左边,消息内容紧邻着用户图标。
右側消息,相同先清除浮动。然后设置 float:right,这样用户图标和消息显示在同一行了。当中图标在最右边。图标左側是消息。

步骤2:设置圆角矩形
border-radius:7px;
登录后复制

步骤3:三角形箭头
&n
将p的宽度和高度设置为0,设置边框宽度,能够使其表现出一个由四个三角形组成的矩形,每一个三角形的颜色和大小能够通过设置border宽度和颜色设置。
这里将当中三个三角形颜色设置为透明。仅仅留下一个三角形可见。

.triangle{
width: 0px;
height: 0px;
border-width: 15px;
border-style: solid;
border-color: red blue green gold;
}登录后复制

.triangle{
width: 0px;
height: 0px;
border-width: 15px;
border-style: solid;
border-color: transparent transparent transparent red;
}登录后复制
关键点4:三角形尾随矩形框
使用相对定位。能够使三角形始终固定在矩形框的边上。
position:relative;
登录后复制

所有代码:
<html>
<head>
<style>
/* bubble style */
.sender{
clear:both;
}
.sender p:nth-of-type(1){
float: left;
}
.sender p:nth-of-type(2){
background-color: aquamarine;
float: left;
margin: 0 20px 10px 15px;
padding: 10px 10px 10px 0px;
border-radius:7px;
}
.receiver p:first-child img,
.sender p:first-child img{
width:50px;
height: 50px;
}
.receiver{
clear:both;
}
.receiver p:nth-child(1){
float: right;
}
.receiver p: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 -->
<p class="sender">
<p>
<img src="chatTemplateExample2_files/cat.jpg">
</p>
<p>
<p class="left_triangle"></p>
<span> hello, man! </span>
</p>
</p>
<!-- Right -->
<p class="receiver">
<p>
<img src="chatTemplateExample2_files/cat.jpg">
</p>
<p>
<p class="right_triangle"></p>
<span> hello world </span>
</p>
</p>
</body>
</html>登录后复制
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
相关教程推荐
- 基于HTML5陀螺仪实现移动动画效果
- H5的服务器推送事件详解
- Canvas实现旋转风车的绘制
- H5的拖放功能详解
- html5新增加的标签有哪些
- H5添加语音输入功能
- H5最全面解读
- 怎样用H5Canvas实现3D动态Chart图表
- 关于老版本的浏览器不兼容H5和C3的处理方法
- html5中重新加载音频/视频元素的方法load()
- 利用Html5实现文件异步上传功能代码实例
- 常用的<meta>代码整理汇总
- JS之原生数组splice方法实例
- 如何解决滚动条样式问题
- Vue.directive()的图文详解
- Vue.directive的自定义指令详解
- 在H5页面中怎样调用APP
- html5不常用标签可以怎么使用?
- html5是什么意思
- html5编辑器有哪些
其他课程推荐
- MacOS环境下Redis安装
- mac sequel连接mysql
- Mac忘记mysql数据库登录密码
- Mac - MySQL
- Mac系统如何清理mysql
- mac下设置redis开机自启
- 在macos上安装一个mysql (不用brew)
- 停止安装macports的mysql守护进程
- 如何通过终端在Mac上获取MySQL的端口?
- mac下安装oracle客户端
- python – 在mac上安装MySQLdb
- 在Markdown / Macdown编辑器中格式化MySQL代码
- Mysql将int转换为MAC
- mac下安装nginx+php+mysql
- mac上一键配置和安装adb驱动或者环境
- mac 快速启动postgresql
- mac下安装MYSQL-python
- java下radomAccessFile文件写入读取
- install mongodb on macos
- Mac 安装phpmyadmin提示无法登陆 mysql服务器解决办法