讲师中心 微信公众号
AI工具推荐 视频效率加速

初学者如何用CSS制作类似微信聊天的气泡对话列表?

胖墨大大_8783

胖墨大大_8783

发布时间:2026-10-28 12:11:31

|

190人浏览过

|

来源于php中文网

原创

关键用margin-left:auto(自己消息)和margin-right:auto(对方消息)控制气泡左右对齐,配合text-align:right/left控制内部文字对齐;禁用float和absolute定位,主气泡设非对称border-radius,伪元素::after绘三角箭头并用transform精确定位。

初学者如何用css制作类似微信聊天的气泡对话列表?

气泡对话的左右对齐怎么用CSS控制

关键不是靠 float 或绝对定位,而是用 margin-left / margin-right 配合 text-align 控制文字和气泡边界。微信风格的核心是:自己发的消息靠右,对方消息靠左,且气泡宽度自适应内容但有最大限制。

推荐做法是给每条消息加一个包裹容器(比如 <div class="message">),再用类名区分方向: <ul> <li> <code>message--self:设 margin-left: auto + text-align: right

  • message--other:设 margin-right: auto + text-align: left
  • 别用 float —— 它会让后续元素布局错乱;也别用 position: absolute —— 会脱离文档流,导致列表高度塌陷。

    气泡形状和圆角怎么写才像微信

    微信气泡不是纯圆角矩形,而是「单侧尖角」效果,本质是用 border-radius + 伪元素 ::after 模拟三角形箭头。重点在三个地方:

    立即学习“前端免费学习笔记(深入)”;

    发表微信公众号文章_无限
    发表微信公众号文章_无限

    专为'无限'作者提供公众号文章发布能力,覆盖完整发布流程、格式规范与操作要求。

    下载
    • 主气泡本身用 border-radius: 18px 18px 18px 4px(右发消息)或 4px 18px 18px 18px(左发消息),让靠近发送方一侧保留直角,方便接箭头
    • 箭头用 ::after 绘制:设 width: 0; height: 0; border: 6px solid transparent;,再把对应方向的边设成背景色
    • 箭头位置必须用 transform: translateX() 微调,不能只靠 left/right —— 否则在不同字体大小下偏移量会错位

    示例(右发消息箭头):

    .message--self::after {
      content: '';
      position: absolute;
      top: 12px;
      right: -12px;
      width: 0;
      height: 0;
      border: 6px solid transparent;
      border-left-color: #007AFF;
      transform: translateY(-50%);
    }

    消息时间戳怎么贴在气泡下方又不撑开间距

    时间戳不是气泡的一部分,但视觉上要“紧贴”气泡底部。常见错误是直接放 <div> 在气泡外,结果行高、margin 全乱了。 <ul> <li>正确做法:把时间戳作为气泡容器的子元素,用 <code>margin-top: 4px + font-size: 12px + color: #999

  • 必须设 display: inline-block 或 display: block 并控制 width: fit-content,否则会独占一行并拉宽整行
  • 如果用 Flex 布局,记得给时间戳加 align-self: flex-end,不然它会默认顶对齐
  • 注意:时间戳不要用 position: absolute 脱离布局 —— 这会导致滚动时定位漂移,尤其在 iOS Safari 上更明显。

    长消息换行和英文单词断行怎么处理

    用户发一长串无空格中文没问题,但遇到 URL、邮箱或连续英文(如 verylongwordwithoutspaces)会直接撑破气泡甚至溢出屏幕。

    • 必须给气泡内容区(比如 <div class="message__content">)加 <code>word-break: break-word(兼容老版 Safari)和 overflow-wrap: break-word(标准属性)
    • 对纯数字或字母串,额外加 hyphens: auto(仅 Safari/Chrome 支持)或 word-break: break-all(激进,慎用)
    • 避免用 white-space: pre-wrap —— 它会保留所有换行符和空格,导致用户粘贴带缩进的代码时格式错乱
    • 真正容易被忽略的是:iOS 微信内置浏览器对 overflow-wrap 的支持不稳定,所以 word-break: break-word 是必加项,不能只写一个。

    相关文章

    微信app下载
    微信app下载

    微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    UpDream
    UpDream Hot

    一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

    豆包大模型

    豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

    Lovart
    Lovart Hot

    一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

    PixTV
    PixTV Hot

    PixTV是一款面向AIGC内容创作的AI视频生成工具。

    创客贴AI

    创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

    切问学术

    切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

    SkildArt
    SkildArt Hot

    SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

    WorkBuddy

    一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

    DeepSeek

    DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

    相关专题

    更多
    css
    css

    css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    5116

    2023.06.15

    css居中
    css居中

    css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

    1097

    2023.07.27

    css如何插入图片
    css如何插入图片

    cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    1978

    2023.07.28

    css超出显示...
    css超出显示...

    在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

    3906

    2023.08.01

    css字体颜色
    css字体颜色

    CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

    8065

    2023.08.10

    什么是css
    什么是css

    CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

    6831

    2023.08.10

    css三角形怎么写
    css三角形怎么写

    CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

    2257

    2023.08.21

    css设置文字颜色
    css设置文字颜色

    CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

    3271

    2023.08.22

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    0

    2026.10.28

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    相关下载

    更多

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 1.5万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 6.1万人学习

    CSS教程
    CSS教程

    共754课时 | 98.9万人学习

    最新文章

    更多

    PDF工具

    更多
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn