HTML5实现微信聊天气泡效果

最近做一个HybridApp,前端有一个群聊的功能,于是就想模仿微信的聊天界面,先看效果图:

screenshot

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>HTML5实现微信聊天气泡效果</title>
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
  <link rel="stylesheet" href="chatbox.css">
</head>
<body>

<!-- Left -->
<div class="chat-sender">
  <div><img src="img/ben.png"></div>
  <div>阿奔 Ben</div>
  <div>
    <div class="chat-left_triangle"></div>
    <span> 苹果增加三款配件的颜色选项</span>
  </div>
</div>
<!-- Right -->
<div class="chat-receiver">
  <div><img src="img/max.png"></div>
  <div>好人·马克思</div>
  <div>
    <div class="chat-right_triangle"></div>
    <span> 但是如果你正在再发新的APP跨平台项目,我建议你考虑一下Ionic2/Ionic3。 ionic2/Ionic3的架构使得“单一职责原则”得到了体现,组件、页面之间相互独立,有利于内聚和解耦。</span>
  </div>
</div>
<!-- Right -->
<div class="chat-sender">
  <div><img src="img/adam.jpg"></div>
  <div>阿达姆 Adam</div>
  <div>
    <div class="chat-left_triangle"></div>
    <span> 一款接近原生的Html5移动App开发框架</span>
  </div>
</div>
<!-- Notice/Center -->
<div class="chat-notice">
  <span>2017年12月10日 23:13</span>
</div>
<!-- Left -->
<div class="chat-sender">
  <div><img src="img/perry.png"/></div>
  <div>佩里 Perry</div>
  <div>
    <div class="chat-left_triangle"></div>
    <span> Ionic遵循视图控制模式,通俗的理解和 Cocoa 触摸框架相似。在视图控制模式中,我们将界面的不同部分分为子视图或包含其他视图的子视图控制器。</span>
  </div>
</div>
<!-- Left -->
<div class="chat-sender">
  <div><img src="img/mike.png"></div>
  <div>麦克</div>
  <div>
    <div class="chat-left_triangle"></div>
    <span> 你可以用ionRefresher指令实现拉动刷新,并可以用ionInfiniteScroll指令实现无限滚动。</span>
  </div>
</div>
<!-- Right -->
<div class="chat-receiver">
  <div><img src="img/max.png"></div>
  <div>好人·马克思</div>
  <div>
    <div class="chat-right_triangle"></div>
    <span> 最后但并非最不重要的是</span>
  </div>
</div>
<!-- Notice/Center -->
<div class="chat-notice">
  <span>你被群主移除群聊</span>
</div>

</body>
</html>

CSS样式代码 chatbox.css

    body{
      background-color: #ebebeb;
      font-family: -apple-system;
      font-family: "-apple-system", "Helvetica Neue", "Roboto", "Segoe UI", sans-serif;
    }
    .chat-sender{
      clear:both;
      font-size: 80%;
    }
    .chat-sender div:nth-of-type(1){
      float: left;
    }
    .chat-sender div:nth-of-type(2){
      margin: 0 50px 2px 50px;
      padding: 0px;
      color: #848484;
      font-size: 70%;
      text-align: left;
    }
    .chat-sender div:nth-of-type(3){
      background-color: white;
      /*float: left;*/
      margin: 0 50px 10px 50px;
      padding: 10px 10px 10px 10px;
      border-radius:7px;
      text-indent: -12px;
    }

    .chat-receiver{
      clear:both;
      font-size: 80%;
    }
    .chat-receiver div:nth-of-type(1){
      float: right;
    }
    .chat-receiver div:nth-of-type(2){
      margin: 0px 50px 2px 50px;
      padding: 0px;
      color: #848484;
      font-size: 70%;
      text-align: right;
    }
    .chat-receiver div:nth-of-type(3){
      /*float:right;*/
      background-color: #b2e281;
      margin: 0px 50px 10px 50px;
      padding: 10px 10px 10px 10px;
      border-radius:7px;
    }

    .chat-receiver div:first-child img,
    .chat-sender div:first-child img{
      width: 40px;
      height: 40px;
      /*border-radius: 10%;*/
    }

    .chat-left_triangle{
      height: 0px;
      width: 0px;
      border-width: 6px;
      border-style: solid;
      border-color: transparent white transparent transparent;
      position: relative;
      left: -22px;
      top: 3px;
    }
    .chat-right_triangle{
      height: 0px;
      width: 0px;
      border-width: 6px;
      border-style: solid;
      border-color: transparent transparent transparent #b2e281;
      position: relative;
      right:-22px;
      top:3px;
    }

    .chat-notice{
      clear: both;
      font-size: 70%;
      color: white;
      text-align: center;
      margin-top: 15px;
      margin-bottom: 15px;
    }
    .chat-notice span{
      background-color: #cecece;
      line-height: 25px;
      border-radius: 5px;
      padding: 5px 10px;
    }

 

posted @ 2017-12-11 01:07  felixnet  阅读(8410)  评论(1编辑  收藏  举报