纯css绘制气泡,支持适应最大宽度,最大高度

CSS3实现自适应的聊天气泡 边框图片 功能:将图片规定为包围 div 元素的边框 a) 定义和用法: border-image 属性是一个简写属性,用于设置以下属性 border-image-source border-image-slice border-image-width border-image-outset border-image-repeat b) 属性说明: 值 描述 border-image... 阅读详情

https://blog.youkuaiyun.com/CuiCui_web/article/details/107225702之前这边文章中的方式是利用js来进行控制的,然后有一个局限,不支持适应最大宽度;另外如果强行设置宽度比较大,会被左侧菜单遮挡,即使给z-index:9999,也没用。看下图展示,2种方式解决之前的不足。(后续可能会更新elementUI表格种气泡乱串问题解决方案)
在这里插入图片描述
公共部分数据定义:

data(){
      return{
        business: {
          id: '',
          name: '啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊',
          number: '',
          creatorName: '',
          ownerName: '',
          description: '',
          target: '啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊',
          result: '啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊,'
        },
      }
    },

方式一:将hover的目标和隐藏的对象当作同一个父容器的子元素

<div style="padding:20px;">
      <el-row>设置行数,行数超出,出现省略号,鼠标移入显示气泡,移出隐藏气泡</el-row>
      <el-row
        style="margin-top: 15px;">
        <el-col :span="8">
          <el-form class="formBox"
                   label-width="110px">
            <el-form-item label="方式一:">
              <div v-if="business.target" class="fixedTowRow">
                <div class="parent-div"
                     style="">
                  <div class="content-box" style="">{{ business.target }}</div>
                  <div class="tip-box">
                    <div class="tip-box-div">
                      {{ business.target }}
                    </div>
                  </div>
                </div>
              </div>
              <div v-else>
                <span>无</span>
              </div>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
    </div>

样式部分:

// 方式一:将hover的目标和隐藏的对象当作同一个父容器的子元素
  .parent-div{
    .content-box{
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3;
      overflow: hidden;
      line-height: normal;
      position:relative;
      top:6px;
    }
    .tip-box{
      display: none;
      position: absolute;
      /*float: left;*/
      top:30px;
      left:0px;
      padding: 10px;
      /*width: 100%;*/
      width: max-content;
      max-width: 500px;
      z-index:1111;
      height: auto;
      background: #f0f6fb ;
      color: #0a92d9 ;
      font-size: 16px ;
      border: 1px solid #0a92d9 ;
      line-height: 1.2;
      -moz-border-radius: 4px;
      -webkit-border-radius: 4px;
      border-radius: 4px;
      .tip-box-div{
        max-height: 500px;
        overflow-y: auto;
      }
      &:after{
        content: '\00a0';
        width: 0;
        height: 0;
        display: block;
        border-color: transparent;
        border-style: solid;
        border-width: 6px;
        /*border-top-color: #0a92d9 !important;*/
        border-bottom-color: #0a92d9 !important;
        position: absolute;
        z-index:-1;
        top:-13px;
        /*top:46px;*/
        left:10%;
      }
    }

    &:hover{
      .tip-box{
        display: block;
      }
    }

  }

方式二:将hover的目标与隐藏对象当作相邻的兄弟元素

<el-form-item label="方式二:">
              <div v-if="business.target" class="fixedTowRow">
                <div class="hover-box" style="">{{ business.target }}</div>
                <div class="hover-box-nex">
                    <div class="tip-box-div">
                      {{ business.target }}
                    </div>
                </div>
              </div>
              <div v-else>
                <span>无</span>
              </div>
            </el-form-item>

样式部分:

 // 方式二: 将hover的目标与隐藏对象当作相邻的兄弟元素
  // 隐藏对象
  .hover-box-nex{
    display: none;
    position: absolute;
    top:30px;
    left:0;
    padding: 10px;
    /*width: 100%;*/
    width: max-content;
    max-width: 500px;
    z-index:1111;
    height: auto;
    background: #f0f6fb ;
    color: #0a92d9 ;
    font-size: 16px ;
    border: 1px solid #0a92d9 ;
    line-height: 1.2;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px;
    .tip-box-div{
      max-height: 500px;
      overflow-y: auto;
    }
    &:after{
      content: '\00a0';
      width: 0;
      height: 0;
      display: block;
      border-color: transparent;
      border-style: solid;
      border-width: 6px;
      /*border-top-color: #0a92d9 !important;*/
      border-bottom-color: #0a92d9 !important;
      position: absolute;
      z-index:-1;
      top:-13px;
      //top:46px;
      left:10%;
    }
  }

  //hover的目标
  .hover-box{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    line-height: normal;
    /*position:relative;*/
    top:6px;
  }
  // //hover的目标      // 隐藏元素
  .hover-box:hover + .hover-box-nex{
    display: list-item;
    list-style-type: none;
  }
  // // 隐藏元素
  .hover-box-nex:hover{
    display: list-item;
    list-style-type: none;
  }
CSS气泡对话框实战:5分钟搞定微信风格聊天框(附完整代码) 本文详细解析了如何使用纯CSS快速构建高保真微信风格气泡对话框。从解构视觉元素、利用边框绘制三角形,到结合伪元素与定位实现基础气泡,并攻克带边框、阴影及响应式布局等实战难题。文章提供完整代码,帮助前端开发者5分钟内掌握核心技法,实现高度定制化的聊天界面设计。 阅读详情

相关推荐

聊天气泡个性化定制全攻略:从CSS到平台适配

聊天气泡作为即时通讯的核心交互元素,其个性化定制涉及前端开发与用户体验设计的交叉领域。通过CSS样式修改、平台API调用或资源替换等技术手段,开发者可以实现气泡背景、形状、动态效果等维度的深度定制。从技术原理看,这需要掌握.9.png拉伸规则、CSS渐变与动画、跨平台适配等基础知识。良好的气泡设计能提升30%以上的消息阅读效率,在社交软件、电商客服等场景尤为重要。微信/QQ/Telegram等主流平台分别采用主题包替换、官方商城、CSS注入等不同方案,其中动态气泡实现涉及Lottie动画、性能优化等工程实践

weixin_29015801的博客 417

前端做一个简单的随机气泡(随机大小,随机颜色,随机方向,随机速度,透明度改变)的静态网页

话不多说直接代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } body { overf...

AaronLee_1310的博客 3906

微信小程序地图气泡实战:从callout到customCallout的性能与兼容性深度解析

本文深度解析微信小程序地图气泡的实战技巧,对比原生callout与customCallout的性能与兼容性差异。通过具体案例和代码示例,详细讲解如何优化气泡布局、适配多机型以及提升渲染性能,帮助开发者解决地图标记点展示中的常见问题。

weixin_33701251的博客 439

纯CSS实现气泡效果

纯css实现一个气泡 HTML <div id="bubble" class="bubble" style="background-color: rgb(42, 209, 172);"><i style="width: 0px;height: 0px;color: rgb(42, 209, 172);border-width: 14px 15px 8px 0px;border-style: solid;border-color: currentcolor transparent trans

dqfkkll的博客 4177

值得把玩的各色CSS气泡【精通CSS100例】

最简单的三角气泡 实现思路: 使用一个::before和::after,对两个设置边框,最后边框的效果就是三角形,一个三角形的边框颜色div一致,两一个则是白色,整好覆盖在上方。 代码 .bubble-box { position: relative; border: 2px solid #409eff; border-radius: 5px; width: 200px; height: 50px;

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1万+

Qt导航栏组件B03:RSS 阅读器双层侧边栏

本文实现了一个RSS阅读器风格的双层侧边栏导航系统,采用深色主题设计,包含订阅源树和文章预览列表。系统通过QSplitter实现可调节布局,支持比例持久化恢复。订阅源树采用分组结构,不同节点类型(分组/订阅源)具有差异化行高和视觉样式,未读数通过彩色气泡直观展示。文章列表支持懒加载优化性能,右侧正文区可自适应渲染HTML内容。关键技术包括:基于QAbstractItemModel的数据管理、自定义委托绘制、QSplitter嵌套布局以及状态持久化机制,为内容聚合类应用提供了高效的导航解决方案。

u011186532的专栏 181

css 手写气泡

css 手写气泡

weixin_48674314的博客 459

【对话气泡】 css3 自适应 带角 带边框 可设背景

抛弃图片和没有边框的气泡吧,本创新的方式实现了 带角带边框可设背景的对话气泡,支持自适应大小

Nanbeige 4.1-3B Streamlit WebUI效果展示:表格数据生成与气泡内渲染效果

本文介绍了如何在星图GPU平台上自动化部署🌸 Nanbeige 4.1-3B Streamlit WebUI (极简清爽版)镜像,快速搭建一个具备极简二次元美学风格的大模型交互界面。该镜像的核心应用场景之一是高效生成并美观地渲染结构化表格数据,例如自动创建市场分析报告或技术对比表格,显著提升数据呈现的可读性与工作效率。

weixin_35749786的博客 574

聊天气泡背景自适应内容宽度高度

聊天气泡背景自适应文字宽度,和高度, 随文字内容适应显示背景,简单简单简单简单的简单简单简单的的小demo

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2631

Nanbeige 4.1-3B Streamlit UI惊艳效果:浅灰蓝波点背景+圆角气泡设计

本文介绍了如何在星图GPU平台上自动化部署🌸 Nanbeige 4.1-3B Streamlit WebUI (极简清爽版)镜像,快速搭建一个具有二次元美学风格的本地大模型对话界面。该镜像提供了一个浅灰蓝波点背景与圆角气泡设计的沉浸式聊天环境,用户可轻松体验与Nanbeige 4.1-3B模型的流畅对话,适用于个人AI助手、创意对话等场景。

weixin_42594419的博客 344

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

本文详细介绍了6mm定焦镜头从专利库检索到最终交付的全流程设计,重点解析了CodeV与Zemax工具链的无缝衔接技巧。通过实际案例展示规格定义、专利筛选、结构适配、非球面优化等关键步骤,帮助光学设计工程师提升设计效率和制造良率。特别包含CodeV转换Zemax的实用技巧,适用于机器视觉和安防镜头开发。

weixin_42561040的博客 161

Nanbeige 4.1-3B WebUI高清效果集:不同提示词下的气泡排版自适应展示

本文介绍了如何在星图GPU平台上一键自动化部署🌸 Nanbeige 4.1-3B Streamlit WebUI (极简清爽版)镜像,快速搭建一个具备极简二次元美学风格的AI对话界面。该镜像的核心应用场景是为用户提供一个美观、流畅的本地大模型对话环境,特别适用于技术问答、创意写作辅助等日常交互,其智能聊天气泡能根据内容长度自适应排版,带来丝滑的流式输出体验。

weixin_42604188的博客 139

特征提取 Features Extraction

介绍了特征提取的基本概念,从分类变量,文本信息和图片信息中进行特征提取的方法,以及实现特征提取的类库

JasonH2021的博客 1万+

从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南

本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。

weixin_29256771的博客 180

Nanbeige 4.1-3B极简WebUI效果展示:圆点矩阵网格背景+微交互动效

本文介绍了如何在星图GPU平台上自动化部署🌸 Nanbeige 4.1-3B Streamlit WebUI (极简清爽版)镜像,快速搭建一个具有圆点矩阵网格背景和微交互动效的沉浸式对话界面。该镜像专为南北阁大语言模型设计,提供了一个简洁、美观的Web交互环境,适用于构建本地AI对话应用,提升用户与大模型交互的视觉与操作体验。

weixin_42584507的博客 28

【GAN实战】基于pytorch-CycleGAN与pix2pix的自定义数据集训练全攻略

本文详细解析了基于PyTorch的CycleGAN与pix2pix模型在自定义数据集上的完整训练流程。核心在于根据数据是否成对来正确选择模型:pix2pix适用于严格配对的“孪生”数据,而CycleGAN则擅长处理非配对的“散装”数据集。文章从数据准备、配置训练到测试应用,提供了全链路实战指南与关键参数调优心得,帮助开发者高效实现图像到图像的风格转换。

x2y3z4a5b的博客 704

Nanbeige 4.1-3B WebUI效果实测:防抖CSS确保气泡不闪烁不变形

本文介绍了如何在星图GPU平台上自动化部署“🌸 Nanbeige 4.1-3B Streamlit WebUI (极简清爽版)”镜像,快速搭建一个极简清爽的AI对话界面。该镜像通过精妙的防抖CSS技术,确保了模型在流式输出文本时聊天气泡的视觉稳定性,为用户提供了沉浸式、无干扰的对话体验,适用于构建轻量级、高交互性的AI聊天应用。

weixin_42298164的博客 1009

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

mjlab 入门教程(一)MuJoCo 人形机器人强化学习训练 sim-to-real 部署框架

摘要:mjlab是一个结合IsaacLab API与MuJoCo简洁性的GPU加速机器人仿真框架,专为强化学习和机器人研究设计。它提供快速安装(支持uv、pip、conda和Docker)、核心功能(域随机化、NaN守护、观测历史/延迟、执行器/传感器系统)以及从IsaacLab的迁移指南。相比IsaacLab,mjlab更轻量、启动更快,直接构建在MuJoCo Warp上,避免了Omniverse开销。其哲学强调裸机性能、开发者体验和核心领域专注,适合需要快速迭代和直接MuJoCo控制的用户,而Isaac

2506_90492529的博客 2726

前端入门必学:用CSS实现三角形的常用三种方式

大家可以记住一个原则: 日常写页面做小箭头,直接用 clip-path 最快;如果要兼容老项目,就切回 border 法;遇到渐变色的三角形,再考虑用渐变拼接。最后大家还是自己动手试一下,会比只看记得更牢。

zyj091111的博客 421

基于XGBoost的混凝土力学性能预测系统

本文介绍了一个基于XGBoost算法的混凝土力学性能预测系统。该系统通过模拟生成3000组混凝土配合比数据(包含水灰比、水泥用量和龄期三个关键特征),利用XGBoost强大的非线性建模能力预测混凝土抗压强度。研究背景源于传统混凝土性能测试方法耗时耗力的痛点,该系统可显著减少实验次数,优化配合比设计。系统实现包括:数据生成与特征工程(模拟真实工程数据并添加噪声和异常值)、XGBoost模型构建、以及预测性能评估。XGBoost算法因其处理非线性关系能力强、鲁棒性好等优势被选用,可为智能建造和数字化施工提供技术

huanghm88的专栏 130

CSS content属性实现多行文本的正确方法

CSS中的content属性用于向伪元素插入生成内容,但其本质是字符串字面量,不解析\n等转义序列;真正控制换行的是white-space属性与Unicode换行符\A的协同作用。理解content的零解析特性与white-space的空白处理机制,是实现纯CSS多行文本的基础。该技术广泛应用于提示气泡、表单校验、数据标签等无需DOM操作的轻量级场景,兼顾性能与可维护性,尤其适合前端工程化与面试深度考察。

weixin_33713350的博客 369

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

手写登录表单:HTML语义化与CSS布局实战详解

表单作为Web前端最基础的交互组件,承载着用户数据输入与提交的核心功能。构建一个规范的登录表单,不仅需要掌握HTML标签的语义化用法,如form、label、input、button的合理搭配,还要理解CSS布局原理,例如利用Flexbox实现水平垂直居中并适配移动端视口。同时,输入框的校验状态、按钮的交互反馈、可访问性细节,都直接影响用户体验。本文以原生HTML+CSS实现一个无框架依赖的登录表单,从结构设计、样式打磨到状态呈现,逐步讲解每个标签和每条样式背后的原理,帮助开发者从“能跑起来”进阶到“知道为

weixin_34293141的博客 388

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

用 JavaScript 搞定高级排版,这个库太强了

说实话,pretext 最大的价值不是"能做多少事情",而是**“不做 DOM 测量”**。浏览器的 layout reflow 是最贵的操作之一,能避开就避开。现在有了 pretext,我们在 JavaScript 层就能搞定大部分文本布局问题,而且还能渲染到 Canvas、SVG,甚至未来能在服务器端预计算。想做高级 UI 的前端需要 Canvas 渲染的游戏开发者做 AI 辅助开发的工具作者都是福音。下一步打算用 pretext 做个虚拟聊天列表,感兴趣可以关注一下。

CHNIM的博客 459

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 推荐几款适用于uniapp开发【全端支持】的UI框架,方便开发
下一篇: elementUI表格气泡乱串、闪烁、位置偏移问题解决(自制气泡,计算位置,箭头永远指向当前元素)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值