【HTML5】简单实现QQ聊天气泡效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>【HTML5】简单实现QQ聊天气泡效果</title>
    <!--
        步骤1:布局
        消息採用div+float布局,每条消息用一个DIV标签包裹,里面再放两个DIV分别用来包裹用户图标和用户消息内容。
        左側消息,先清除浮动,然后设置 float:left。这样用户图标和消息内容就能够显示在同一行了,当中用户图标在左边,消息内容紧邻着用户图标。

        右側消息,相同先清除浮动。然后设置 float:right,这样用户图标和消息显示在同一行了。当中图标在最右边。图标左側是消息。

        步骤2:设置圆角矩形
        border-radius:7px;

        步骤3:三角形箭头
        将DIV的宽度和高度设置为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:三角形尾随矩形框
        使用相对定位。能够使三角形始终固定在矩形框的边上。-->
    <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="../img/us_flag.png" height="462" width="427"/></div>
    <div>
        <div class="left_triangle"></div>
        <span> 我是世界警察:美利坚</span>
    </div>
</div>
<!-- Right -->
<div class="receiver">
    <div>
        <img src="../img/y.jpg" height="640" width="640"/></div>
    <div>
        <div class="right_triangle"></div>
        <span> 我是倭寇岛主:樱花 </span>
    </div>
</div>
<!-- Left -->
<div class="sender">
    <div>
        <img src="../img/chinaArmyPeople.jpg"/></div>
    <div>
        <div class="left_triangle"></div>
        <span> 我是世界人民领导者:中国 </span>
    </div>
</div>
<!-- Right -->
<div class="receiver">
    <div>
        <img src="../img/de_flag.png" height="640" width="640"/></div>
    <div>
        <div class="right_triangle"></div>
        <span> 我是卓越企业家:德国 </span>
    </div>
</div>
<!-- Left -->
<div class="sender">
    <div>
        <img src="../img/frence_flag.png" height="462" width="427"/></div>
    <div>
        <div class="left_triangle"></div>
        <span> 我是浪漫帝国:法兰西</span>
    </div>
</div>
<!-- Right -->
<div class="receiver">
    <div>
        <img src="../img/canada_flag.png" height="640" width="640"/></div>
    <div>
        <div class="right_triangle"></div>
        <span> 我是枫叶之国:加拿大 </span>
    </div>
</div>

</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值