视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
css3的聊天气泡样式
2020-11-27 18:49:12 责编:小采
文档
这次给大家带来css3的聊天气泡样式,做出css3的聊天气泡样式的注意事项有哪些,下面就是实战案例,一起来看一下。

在聊天的场景中,聊天内容需要用到气泡修饰,如下图。下面一一讲解。

图片式:

第一个样式是京东客服,气泡的圆角和钩子都是用了图片。使用了一个table组合成了一个圆角的框框。lm样式拼出了钩子。

 <p class="jimi_lists clearfix">
 <p class="header_img jimi3 fl"></p>
 <table class="msg" cellspacing="0" cellpadding="0">
 <tbody><tr><td class="lt"></td><td class="tt"></td><td class="rt"></td></tr>
 <tr><td class="lm"><span></span></td><td class="mm"><span class="wel"><span class="visitor"><p>很抱歉,现在人工客服忙,让小JIMI为您解答吧。</p></span></span></td><td class="rm"></td></tr>
 <tr><td class="lb"></td><td class="bm"></td><td class="rb"></td></tr><tr><td></td></tr>
 </tbody>
 </table>
 </p>
 <p class="customer_lists clearfix">
 <p class="header_img jimi3" style="background: url(img/mine.jpg) no-repeat center;">
 <p class="header_img_hover"></p>
 </p>
 <table class="msg" cellspacing="0" cellpadding="0"><tbody><tr><td class="lt"></td><td class="tt"></td><td class="rt"></td></tr><tr><td class="lm"></td><td class="mm">你好,我是stoneniqiu</td><td class="rm"><span></span></td></tr><tr><td class="lb"></td><td class="bm"></td><td class="rb"></td></tr><tr><td></td><td class="time"></td><td></td></tr></tbody></table>
 </p>

样式:

 .jimi_lists {
 margin: 0 -10px 20px 10px;
 position: relative;
}
 .jimi_lists .header_img.jimi3 {
 background: url(../img/jimi_50_3.png) no-repeat 0 0;
}
 .jimi_lists .header_img {
 width: 50px;
 height: 50px;
 position: absolute;
 top: 0;
 left: 0;
}.fl {
 float: left;
}
 .jimi_lists .msg {
 margin-left: 59px;
 margin-right: 40px;
 margin-top: 2px;
 float: left;
 display: inline;
}
 .jimi_lists .lt {
 background: url(../img/msg_bg_lr.png) no-repeat 0 0;
 width: 26px;
 height: 10px;
}
 .jimi_lists .tt {
 background: url(../img/msg_bg_tb.png) repeat-x 0 -23px;
 height: 10px;
}.jimi_lists .rt {
 background: url(../img/msg_bg_lr.png) no-repeat -35px 0;
 width: 10px;
 height: 10px;
}.jimi_lists .lm {
 background: url(../img/msg_bg_lr.png) repeat-y -94px 0;
 width: 26px;
 vertical-align: top;
 position: relative;
}.jimi_lists .mm {
 padding: 0 5px;
 background-color: #FFF;
 word-break: break-all;
 word-wrap: break-word;
 color: #333;
 line-height: 20px;
}.jimi_lists .lm span {
 background: url(../img/msg_bg_lr.png) no-repeat 0 -14px;
 display: inline-block;
 width: 26px;
 height: 16px;
 position: absolute;
 top: 5px;
}.jimi_lists .rm {
 background: url(../img/msg_bg_lr.png) repeat-y -113px 0;
 width: 10px;
}.jimi_lists .lb {
 background: url(../img/msg_bg_lr.png) no-repeat 0 -43px;
 width: 10px;
 height: 10px;
}.jimi_lists .bm {
 background: url(../img/msg_bg_tb.png) repeat-x 0 -25px;
 height: 10px;
}.jimi_lists .rb {
 background: url(../img/msg_bg_lr.png) no-repeat -35px -43px;
 width: 10px;
 height: 10px;
}.customer_lists {
 position: relative;
 margin: 0 12px 20px 20px;
}.customer_lists .msg {
 float: right;
 margin-right: 73px;
 _margin-right: 38px;
 margin-top: 2px;
}.customer_lists .lt {
 background: url(../img/msg_bg_lr.png) no-repeat -47px -0;
 width: 10px;
 height: 10px;
}.customer_lists .tt {
 background: url(../img/msg_bg_tb.png) repeat-x 0 0;
 height: 10px;
}.customer_lists .rt {
 background: url(../img/msg_bg_lr.png) no-repeat -63px 0;
 width: 26px;
 height: 10px;
}.customer_lists .lm {
 background: url(../img/msg_bg_lr.png) repeat-y -126px 0;
 width: 10px;
}.customer_lists .mm {
 padding: 1px 8px;
 background-color: #37E7;
 word-break: break-all;
 word-wrap: break-word;
 color: #FFF;
}.customer_lists .rm {
 background: url(../img/msg_bg_lr.png) repeat-y -129px 0;
 width: 26px;
 vertical-align: top;
 position: relative;
}.customer_lists .lb {
 background: url(../img/msg_bg_lr.png) no-repeat -47px -36px;
 width: 10px;
 height: 10px;
}.customer_lists .bm {
 background: url(../img/msg_bg_tb.png) repeat-x -106px -4px;
 height: 10px;
}.customer_lists .rb {
 background: url(../img/msg_bg_lr.png) no-repeat -63px -36px;
 width: 26px;
 height: 10px;
}.customer_lists .rm span {
 background: url(../img/msg_bg_lr.png) no-repeat -63px -14px;
 display: inline-block;
 width: 26px;
 height: 16px;
 position: absolute;
 top: 5px;
}.customer_lists .header_img_hover {
 position: absolute;
 background: url(../img/avatar_mask_01.png);
 top: 0;
 width: 50px;
 height: 50px;
}.customer_lists .header_img {
 position: absolute;
 top: 0;
 right: 14px;
 width: 50px;
 height: 50px;
}
 .clearfix:after {
 content: " .";
 display: block;
 clear: both;
 visibility: hidden;
 height: 0;
}

View Code

背景式:

第二种主要是使用了:before伪类画出了三角形,然后用定位拼在了一起。

 <p class="jimi_lists clearfix">
 <p class="header_img jimi3 fl"></p>
 <p class="bkbubble right">
 <p>换个气泡如何</p>
 </p>
 </p>
 <p class="customer_lists clearfix">
 <p class="header_img jimi3" style="background: url(img/mine.jpg) no-repeat center;">
 <p class="header_img_hover"></p>
 </p>
 <p class="bkbubble left">
 <p>这个不错</p>
 </p>
 </p>

样式:

 .bkbubble.right p:before, .bkbubble.left p:before {
 width: 0;
 position: absolute;
 top: 12px;
 border-style: solid;
 content: "";
 }
 .bkbubble.left {
 text-align: right;
 }
 .bkbubble.right p:before {
 left: -12px;
 border-color: transparent #00bfff;
 border-width: 0 12px 12px 0; }
 .bkbubble.left p:before {
 right: -12px;
 border-color: transparent #00bfff;
 border-width: 0 0 12px 12px ; }

更多三角形:http://www.cnblogs.com/lhb25/p/css-and-css3-triangle.html

边框式:

如果要求边框颜色和背景颜色不一样呢?上面的方法就不行了,因为用:before画三角形是利用border的原理,也就是说,在上面这种方式下,气泡边上的小三形是无法呈现两种颜色的,因为他只有一个border的颜色。那就要想办法凑出一个有边框的三角形了。

 <p class="jimi_lists lim_operator clearfix">
 <p class="header_img jimi3 fl"></p>
 <p class="lim_bubble lim_shadow"><p class="lim_dot">您好,请问有什么可以帮到您?</p></p>
 <p class="lim_tale"><p class="radiusborder"></p></p>
 </p>

1.先画一个小矩形。

.lim_operator .lim_tale {
 left: -1px;
 background-color: #c8f0;
 border-color: #a5d01b;
 margin-left: 70px;
}.lim_tale {
 position: absolute;
 width: 12px;
 height: 8px;
 overflow: hidden !important;
 top: 10px;
 z-index: 2;
 border-top-style: solid;
 border-top-width: 1px;
}

2.画出斜线。

css里面是没有斜线的,这里是用了一个园的弧形拼出来的。在一个大圆上,截取一段弧,就是一条斜线了。

.lim_operator .radiusborder {
 position: absolute;
 background-color: #EFF0F2;
 top: -29px;
 left: -94px;
 height: 160px;
 width: 160px;
 border-top-style: solid;
 border-top-width: 1px;
 border-right-style: solid;
 border-right-width: 1px;
 border-top-right-radius: 154px;
 border-color: #a5d01b;
}

叠加式:

原理就是相当于用before先画出一个有色背景,再用after画出一个白色背景,然后叠加错开顶部1-2px,这样就出现了一个有边框有背景的三角形。web 微信就是这种做法

.expression:before {
 content: '';
 position: absolute;
 left: 16px;
 top: 100%;
 margin-left: -7px;
 border: 7px solid transparent;
 border-top-color: #CFCFCF}.expression:after {
 content: '';
 position: absolute;
 left: 16px;
 top: 100%;
 margin-left: -7px;
 margin-top: -1px;
 border: 7px solid transparent;
 border-top-color: #FFF}

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

JavaScript的var与this,{}与function

ss3的渐变如何使用

下载本文
显示全文
专题