美文网首页
CSS 消息气泡实现

CSS 消息气泡实现

作者: 李牙刷儿 | 来源:发表于2017-12-04 21:01 被阅读145次

前端页面开发中经常需要实现消息气泡样式,比如:

messagebubble3.png

实际上上述两种效果实现起来,并不复杂,接下来我们就来实战一下。

1. 构建消息框

消息框主体很简单,一个div,设置一下背景颜色、border-radius等即可:

.message1,.message2 {
  width: 200px;
  height: 80px;
  margin: 100px auto;
  background-color: green;
  border-bottom-color:green;/*为了给after伪元素自动继承*/
  color: #fff;
  font-size: 12px;
  font-family: Arial;
  line-height: 18px;
  padding: 5px 12px 5px 12px;
  box-sizing: border-box;
  border-radius: 6px;
  position: relative;
  word-break: break-all;
}

<body>
  <div class="message1">
    Demos 代码演示、代码片段 - 读你,欢迎来到读你,http://dunizb.com/demo/
  </div>

  <div class="message2">
    Demos 代码演示、代码片段 - 读你,欢迎来到读你,http://dunizb.com/demo/
  </div>
</body>


messagebubble2.png

2 三角形箭头

接下来我们实现一下图一中第一个消息气泡样式,这个样式相对简单:只需在消息框主体之前插入一个元素,然后再旋转45度即可,在现有元素之前插入其他元素首选before

.message1::before {
  content: '';
  width: 20px; 
  height: 20px;
  background-color: inherit;
  left: -10px; /*向左侧外部延伸箭头box的一半宽度*/
  position: absolute;
  transform: rotate(45deg); /*旋转45度*/
  top:50%; /*箭头在数值方向上居中*/
  margin-top: -5px;
}
messagebubble4.png

3 圆弧型箭头

圆弧型箭头,稍微复杂些。由于涉及到弧度部分,可以考虑利用border来实现。首先我们通过after实现一个吸附在消息框右部的矩形框:

.message2::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  right: -24px;
  top: 0px;
  background-color: red; /*为显示需要*/
} 
messagebubble5.png

前面已经说到,我们真正需要的是通过border来实现弧形效果,所以这里必然需要设置border,不过并不是所有方向都需要设置border,只需要设置底部和左部:

.message2::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    right: -24px;
    top: 0px;
    background-color: red;
    border-width: 0 0 20px 20px;
    border-style: solid;
    border-left-color: blue;
    border-bottom-color: yellow;
} 
messagebubble6.png

接下来再加上右下角弧度:

.message2::after {
  ...
  border-bottom-right-radius: 60px;
} 
messagebubble7.png

此时可以看到,基本的雏形已经出来了,接下来就是重新设置颜色了。

.message2::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  right: -24px;
  top: 0px;
  border-width: 0 0 20px 20px;
  border-style: solid;
  border-left-color: transparent;
  border-bottom-color:inherit;
  border-bottom-right-radius: 60px;
} 
messagebubble9.png

大功告成!

相关文章

  • CSS 消息气泡实现

    前端页面开发中经常需要实现消息气泡样式,比如: 实际上上述两种效果实现起来,并不复杂,接下来我们就来实战一下。 1...

  • 微信聊天气泡实现

    css 在代码中引用 左气泡实现 背景颜色需要改一下

  • QQ小红点

    QQ小红点消息气泡拖来拽去是不是很有意思?这篇文章主要介绍QQ小红点消息气泡库的实现,实现后的效果是使用简单,功能...

  • 自己练习的css动画(单标签)

    筷子css 鸡蛋css 勺子css 爱心css 气泡css 缺四角css 缺圆角css 梯形css 圆盘css 平...

  • 小三角与气泡

    1、CSS规则气泡实现 首先画一个矩形,设置定位,然后画一个小三角,绝对定位于矩形下方;描边气泡:在画一个同样的小...

  • vue+element

    1、Message 消息提示的使用(实现消息动态出现在右下角)methods中的方法体 css的使用 其中css中...

  • 自定义气泡View

    实践背景 在即时通讯类应用里,很常见各种气泡布局包裹消息,通常我们采用.9图实现。但是使用气泡图片面临着间距不可控...

  • css仿聊天气泡样式

    css仿聊天气泡 *推荐大家一个css绘制形状的网站:https://css-tricks.com/the-sha...

  • css气泡效果

    最近移动端项目需要实现像微信语音一样的样式框,如上图所示,查找了一些资料发现实现起来蛮简单的,特意记录下.html...

  • H5说话气泡点击动画

    目录 需求 思路 实现半透明气泡制作html结构lessrem规则自己换算也可以使用px对话框css动画添加计时器...

网友评论

      本文标题:CSS 消息气泡实现

      本文链接:https://www.haomeiwen.com/subject/qkrfixtx.html