首页 > 其他分享 >使用css实现对话气泡的效果

使用css实现对话气泡的效果

时间:2024-12-03 09:55:34浏览次数:5  
标签:color bubble 对话 chat 10px border transparent css 气泡

/* Basic bubble styles */
.chat-bubble {
  position: relative;
  display: inline-block;
  padding: 10px 15px;
  border-radius: 20px;
  max-width: 75%; /* Adjust as needed */
  margin-bottom: 10px;
  clear: both;
}

/* User bubble */
.user .chat-bubble {
  background-color: #007bff; /* Example color */
  color: white;
  float: right;
}

.user .chat-bubble::before {
  content: "";
  position: absolute;
  bottom: 0;
  right: -10px;
  border-bottom-left-radius: 10px;
  border-width: 10px;
  border-style: solid;
  border-color: transparent #007bff transparent transparent; /* Match background */
}

/* Other user/bot bubble */
.other .chat-bubble {
  background-color: #e9ecef; /* Example color */
  color: #343a40;
  float: left;
}

.other .chat-bubble::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -10px;
  border-bottom-right-radius: 10px;
  border-width: 10px;
  border-style: solid;
  border-color: transparent transparent transparent #e9ecef; /* Match background */
}


/* Example HTML structure */
```html
<div class="chat-container">
  <div class="user">
    <div class="chat-bubble">Hello!</div>
  </div>
  <div class="other">
    <div class="chat-bubble">Hi there!</div>
  </div>
  <div class="user">
    <div class="chat-bubble">How are you?</div>
  </div>
</div>

Explanation and Key Improvements:

  • Clearer Structure: Uses user and other classes to differentiate between message senders, making styling and scripting easier.
  • Triangle "Tail": The ::before pseudo-element creates the small triangle that points towards the sender, making it clear who said what. The border colors are set to transparent except for the side that creates the triangle, and this color matches the background color of the bubble.
  • Responsive Design: max-width: 75% prevents bubbles from stretching across the entire screen on larger displays. You can adjust this value as needed.
  • Float Positioning: float: right for user bubbles and float: left for other bubbles positions them on the correct sides. clear: both ensures each bubble starts on a new line.
  • Simple Styling: Basic styling is provided for background color, text color, padding, and border-radius. Customize these to fit your design.

Further Enhancements:

  • Avatars: Add avatar images next to the bubbles for better visual identification.
  • Timestamps: Include timestamps with each message.
  • Different Bubble Styles: Create variations for different message types (e.g., images, files).
  • JavaScript Interaction: Use JavaScript to dynamically add new bubbles to the chat container. You'll probably want to use a framework/library for this, or at least handle the DOM manipulation carefully.

This improved CSS provides a solid foundation for creating dynamic and visually appealing chat bubbles. Remember to adapt the HTML structure and CSS classes to your specific project requirements.

标签:color,bubble,对话,chat,10px,border,transparent,css,气泡
From: https://www.cnblogs.com/ai888/p/18583450

相关文章

  • qiankun 的 CSS 沙箱隔离机制
    为什么需要CSS沙箱在qiankun微前端框架中,由于每个子应用的开发和部署都是独立的,将主/子应用的资源整合到一起时,容易出现样式冲突的问题因此,需要CSS沙箱来解决样式冲突问题,实现主应用以及各子应用之间的样式隔离,确保各自的样式独立运行,互不干扰工程化手段既然CSS沙箱是用......
  • 使用css3实现一个斑马线的效果
    可以使用几种不同的CSS3方法来创建斑马线效果,以下是其中几种常见且有效的方法:1.使用nth-child(odd)或nth-child(even):这是最简单和最常用的方法。它利用nth-child伪类选择器来选择奇数或偶数行,并应用不同的背景颜色。.zebra-tabletbodytr:nth-child(odd){backgr......
  • 如何使用css实现跨浏览器的最小高度?
    CSS中实现跨浏览器兼容的最小高度,曾经是一个令人头疼的问题,但现在已经有了相对简单的解决方案。以下几种方法可以实现:1.min-height属性(推荐):这是现代浏览器中最直接和推荐的方法。min-height属性直接设置元素的最小高度。大多数现代浏览器都支持这个属性,包括IE7及以上......
  • 使用css实现悬浮提示文本
    <!DOCTYPEhtml><html><head><style>.tooltip{position:relative;display:inline-block;border-bottom:1pxdottedblack;/*Ifyouwantdotsunderthehoverabletext*/}.tooltip.tooltiptext{visibility:hidden;w......
  • css预处理器sass知识点
    下面一段代码是项目中全局样式的一段代码,解释下作用/**定义一个变量*/$me-button-bgcolor:(primary:$mybutton,warning:"#fff",);/***@each是一个Sass指令,用于循环遍历列表或映射。$key,$colorin$me-button-bgcolor表示将要遍历名为$me-button-bgcol......
  • 用css画一个五边形和一个六边形
    <!DOCTYPEhtml><html><head><style>.pentagon{width:100px;height:100px;background:red;position:relative;}.pentagon::before{content:"";position:absolute;top:0;left:0;width:0;hei......
  • 使用纯css来创建一个滑块
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>CSSSlider</title><style>......
  • iframe可以使用父页面中的资源吗(如:css、js等)?
    是的,iframe可以使用父页面中的资源,例如CSS和JavaScript。这取决于iframe的src属性以及父页面和iframe页面之间的关系。以下几种情况:同源策略下的iframe:如果iframe的src指向与父页面同源的URL(协议、域名和端口都相同),那么iframe可以完全访问父页面的资源,包括CSS、JavaScript......
  • 为什么说css中能用子代选择器的时候不要用后代选择器?
    在CSS中,提倡尽可能使用子代选择器(>)而不是后代选择器(空格),主要是因为性能和可预测性方面的原因:性能更高:子代选择器只选择直接子元素,而后代选择器会选择所有后代元素,包括子元素、孙元素等等。这意味着使用后代选择器时,浏览器需要遍历更多的DOM节点来确定匹配的元素,尤其在......
  • H5-16 CSS 的引入方式
    1、内联样式(行内样式)要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style属性可以包含任何CSS属性温馨提示:缺乏整体性和规划性,不利于维护,维护成本高<pstyle="color:red;font-size:30px;">内联样式</p>2、内联样式温馨提示:单个页面内的CSS代码......