CSS 消息气泡实现

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

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

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>

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;
}

3 圆弧型箭头

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

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

前面已经说到,我们真正需要的是通过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;
} 

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

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

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

.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;
} 

大功告成!

时间: 2024-08-02 00:41:36

CSS 消息气泡实现的相关文章

css实现气泡框效果(实例加图解)_CSS/HTML

前提:气泡框或者提示框是网页很常见的,实现它的方式有很多,我们以前最常用的就是切图片 然后通过 "定位" 方式 定位到相应的位置,但是用这种方式维护很麻烦,比如设计师想改成另外一种或者另外一种颜色 那我们只有再次切图片等.下面我们来学习下使用html+css来实现这种效果! 如下效果:    and   我们可以来分析下:要实现这种效果 无外乎就是一个矩形和一个小三角形 然后三角形定位上去就可以了,那么我们怎么样通过css来制作小三角形呢? 一:首先我们来看看css border属性,

Android贝塞尔曲线初步学习第二课 仿QQ未读消息气泡拖拽黏连效果

上一节初步了解了Android端的贝塞尔曲线,这一节就举个栗子练习一下,仿QQ未读消息气泡,是最经典的练习贝塞尔曲线的东东,效果如下 附上github源码地址:https://github.com/MonkeyMushroom/DragBubbleView 欢迎star~ 大体思路就是画两个圆,一个黏连小球固定在一个点上,一个气泡小球跟随手指的滑动改变坐标.随着两个圆间距越来越大,黏连小球半径越来越小.当间距小于一定值,松开手指气泡小球会恢复原来位置:当间距超过一定值之后,黏连小球消失,气泡小球

CSS做气泡效果的三角

经常用到这个做气泡效果的三角CSS样式 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

文本消息气泡的宽度调整

问题描述 文本消息的气泡宽度怎么调整,需要每行多显示几个文字. 解决方案 在EaseMessageCell.m中设置cell.bubbleMaxWidth即可.

纯CSS实现各类气球泡泡对话框效果

原文 纯CSS实现各类气球泡泡对话框效果 一.关于纯CSS实现气泡对话框 首先,来张大图: 上边这张黄黄的,大大的,圆圆的,有个小尾巴,文字内容有些YY的图片,就是使用纯CSS实现的气泡对话框效果,一点图片都没有哦.看到这里,你是不是跟我一样,有些惊叹CSS的潜力呢.关于这张图片,暂时先放到一边,下面我要讲一些与主旨相关的比较重要的,同时又很实用的一些技术. 我们首先看下面这一张图片(截自人人网): 可能颜色有点淡,在左上角有个90度的尖角,于是整个形成了一个气泡对话框.现在考考你,如果你来实现

Facebook Paper中的23个设计细节

    Facebook的Paper自前几日上架App Store后就成为开发者设计师们热议话题在App Store里也获得了很高的用户好评率当然也有不喜欢这款应用的用户包括那些讨厌Facebook的用户和被众多手势操作迷惑的用户.不过在我看来Paper中一些细节设计和交互设计还是给人带来很大的惊喜以下是我认为值得与其他设计师分享的设计细节.(部分GIF图质量偏低;有些尺寸较大用静态图替换了GIF图不过你可以点击链接查看原始的GIF图) 你可以在Twitter上@brian_lovin一起讨论设

CSS2.0实现面包屑

  面包屑这样的 我们以前都是用背景图片做这块工作,但是直到大概2个星期之前在新浪微博上看到用css3.0实现这样的面包屑 但是目前情况下IE6-8并不支持css3.0 只有标准游览器(像火狐 谷歌等支持).由于有前一次总结一篇关于"CSS实现气泡框效果" 的文章 其中有关于怎么样实现小三角形的列子  所以感觉用那个小三角形可以正好模拟这块工作,所以也就试着做了一个.下面我们来看看面包屑大概是个什么样的效果!如下图:     如上所示:   思路: 1. 页面有3个li li标签嵌套有

5个使用CSS3实现的常见效果

用纯CSS也可以实现各种各样很酷的效果了,甚至是动画.虽然有些效果不能跨浏览器(甚至是支持CSS3的浏览器)运行,有些只是展示并没什么实际 用途, 但仅用CSS实现出的这些效果似乎没什么可以挑剔的. 对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分,随着CSS3的出现以及越来越多的浏览器对它的支持,设计师们有了 更多的选择.用纯CSS也可以实现各种各样很酷的效果了,甚至是动画.虽然有些效果不能跨浏览器(甚至是支持CSS3的浏览器)运行,有些只是展示并没什么实际 用途, 但仅用

Win8QQ增加讨论组功能

腾讯已开放了Win8版QQ 2.0.7优先体验活动,适用于Windows 8(32位&64位).Windows RT系统,支持讨论组基础功能,重点解决频繁闪退问题,全面提升性能和稳定性. Win8QQ 2.0.7版本特性: 1.支持讨论组,包括创建讨论组.添加或删除讨论组成员.退出讨论组.收发文本消息或图片等: 2.语音消息气泡优化,增加未读状态.播放进度条: 3.增加网络断开后的提示: 4.网络设置增加测试功能: 5.消息推送增加显示头像: 6.增加发送快捷键的设置: 7.增加发送图片超限时的