MorFans Dev
折腾 - 开发 - 分享

Html,CSS 实现类似QQ的气泡聊天

Html,CSS 实现类似QQ的气泡聊天

下面是效果图:
2014082318335

下面说下关键地方的样式设置,然后贴出html和css代码(不多)。

步骤1:布局

消息采用div+float布局,每条消息用一个DIV标签包裹,里面再放两个DIV分别用来包裹用户图标和用户消息内容。 左侧消息,先清除浮动,然后设置 float:left,这样用户图标和消息内容就可以显示在同一行了,其中用户图标在左边,消息内容紧邻着用户图标。
右侧消息,同样先清除浮动,然后设置 float:right,这样用户图标和消息显示在同一行了,其中图标在最右边,图标左侧是消息。
2014082318340

步骤2:设置圆角矩形

border-radius:7px;  

2014082318355

步骤3:三角形箭头

将DIV的宽度和高度设置为0,设置边框宽度,可以使其表现出一个由四个三角形组成的矩形,每个三角形的颜色和大小可以通过设置border宽度和颜色设置。
这里将其中三个三角形颜色设置为透明,只留下一个三角形可见。
2014082318342

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

2014082318360

    .triangle{
        width: 0px;
        height: 0px;
        border-width: 15px;
        border-style: solid;
        border-color: transparent transparent transparent red;
    }

关键点4:三角形跟随矩形框

使用相对定位,可以使三角形始终固定在矩形框的边上。

position:relative;

2014082318335
ok 已经是我们所要的结果了 😯
23333

这是完整css:

.sender{clear:both}.sender div:nth-of-type(1){float:left}.sender div:nth-of-type(2){background-color:#7fffd4;float:left;margin:0 20px 10px 15px;padding:10px 10px 10px 0;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 0 10px 10px;border-radius:7px}.left_triangle{height:0;width:0;border-width:8px;border-style:solid;border-color:transparent #7fffd4 transparent transparent;position:relative;left:-16px;top:3px}.right_triangle{height:0;width:0;border-width:8px;border-style:solid;border-color:transparent transparent transparent gold;position:relative;right:-16px;top:3px}

代码:


cat
hello, man!
cat
hello world

[demo]点击查看演示[/demo]

赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:Html,CSS 实现类似QQ的气泡聊天(https://www.morfans.cn/archives/1380)

野小新

文章作者

野小新很野~

发表回复

textsms
account_circle
email

  • 拖鞋仔

    有没有完整的Demo 完整的

    7年前 回复
  • 有没有demo,完整的

    7年前 回复
  • 御坂美琴

    看一看

    7年前 回复
  • syusyunka

    是我想要的效果

    7年前 回复
  • 悠扬启迪

    学习下,感觉很有用

    7年前 回复
  • hackyo

    厉害了!!!

    7年前 回复
  • 啦啦

    很好啊

    8年前 回复
  • 昵称

    如何确定矩形框的长宽呢?如果中文的话,字号一定时,每个字的宽高都是固定的,可以通过字数计算得矩形宽高,但是英文中每个字母的长宽都不固定(宋体除外),比如微软雅黑的i和m中明显m宽,如何解决这个问题,确保所有文字都恰好显示在矩形框内?

    8年前 回复
  • 心心看过

    8年前 回复
  • 看看

    8年前 回复

Html,CSS 实现类似QQ的气泡聊天
下面是效果图: 下面说下关键地方的样式设置,然后贴出html和css代码(不多)。 步骤1:布局 消息采用div+float布局,每条消息用一个DIV标签包裹,里面再放两个DIV分别用来包裹…
扫描二维码继续阅读
2016-02-08