摸鱼时刻打造优弧语录,经典的你小子

简介: 各位掘友,知道juejin正式会员群里什么最多吗?

image.png上面是优弧语录的代码片段,只图一乐😶‍🌫️

微信聊天框

构造大框

仿造微信的聊天框,它由头像+昵称+聊天内容构成,基本的大框如下

<div class="chat" v-for="item in chats">
    <div class="chat-img"><img src=""></div>
    <div class="chat-name">优弧</div>
    <div class="chat-body">
      <div class="chat-box"></div>
      <span class="chat-content">{{item.chat}}</span>
    </div>
</div>
复制代码

我根据文档流配合浮动实现布局,先通过为头像设定并赋予左浮动,使其脱离文档流。

.chat .chat-img{
      float: left;
}
.chat .chat-img img{
      width: 40px;
      height: 40px;
}
复制代码

再通过为聊天主体即chat-namechat-content赋予左外边距,因为头像左浮动脱离了文档流,所以在设置外边距之前头像和内容是层叠在一起的。

.chat-name .chat-content{
    margin: 5px 50px;
}
复制代码

通过计算头像盒子的大小来适当地设置左外边距大小

解决细节

为了高仿微信聊天,有一处细微的细节需要去处理,那就是微信聊气泡左边的一个三角形,这就需要我们会使用CSS画三角啦

.chat-box {
     height: 0px;
     width: 0px;
     border:10px solid;
     border-color: transparent #ffffff transparent transparent;
}
复制代码

其实一个三角形很简单,我们利用border的特性就能画出一个简易的三角形,如下步骤

  1. 为一个盒子设置border的大小
  2. 将高度和宽度设置为0
  3. border有四个方向,我们选择左,设置颜色,其他方向设置为transparent透明
  4. 得到一个箭头向左的三角形

画完这个小小的三角形后我们通过相对定位就可以将它固定在气泡左侧了

文本处理

为了更加逼真,所以需要考虑到文本宽度与换行的问题.

最初我直接为chat-body设置了宽度百分比,但是效果就是文本少的情况下会多出一部分空白文本框,而文本多的时候不能换行,所以我查了一个宽度的属性值fit-content,它能够根据容器内文本内容更改宽度,所以我利用了它解决了适应文本长度问题,不仅仅是这样,我还搭配了max-width属性,设置最大宽度,实现了聊天框的宽度统一,成功仿真。

.chat  .chat-body{
      width:fit-content;
      max-width:300px;
}
复制代码

随机语录

为了展现优弧大大的语录,我进行了一个随机增加的操作,其实很简单,就是利用Math的几个api获取随机值,再添加进我们的渲染数组内。

add(){
      this.chats.push(this.sentences[Math.floor(Math.random()*this.sentences.length)])
}
复制代码

最后

整体实现还是非常简单的(没技术含量),只是突发奇想做了一个这个东西,如果各位掘友喜欢也可以给我来个小赞赞。另外掘金会员还是很值的,不仅是学习上的,每天摸鱼的时候看看会员群也是一大乐子,虽然优弧骗了我续费了2年会员(超级会员),各位弧家人,快来评论区打出你知道的经典优弧话,让我们共建你小子语录!

相关文章
|
存储 缓存 安全
Nacos 安全零信任实践
本文将介绍如何基于安全零信任的理念来保证 Nacos 的数据安全。
13488 106
|
监控 网络协议 关系型数据库
linux网络监控
在Linux中,网络监控涉及接口状态检查、流量监控、连接追踪和性能分析。常用命令如`ifconfig`(由`ip`替换)、`netstat`、`ss`、`ifstat`、`iftop`、`nload`用于接口和流量查看。带宽工具如`vnstat`、`bmon`、`iptraf-ng`提供流量统计。`tcpdump`、`nethogs`、`ntop`深入分析和资源分配。此外,`OpenNMS`和`Cacti`提供企业级监控解决方案。这些工具助力管理员高效管理网络。
561 4
|
22天前
|
人工智能 自然语言处理 算法
GEO优化不踩坑:不同规模企业的服务商选择与落地干货
AI搜索崛起,GEO成流量新风口。企业需根据规模与行业精准选择服务商:大企业重全球布局与合规,选即搜AI、Moz;中小微求性价比与速效,边鱼科技、Ahrefs更适配。结合实操案例与签约避坑指南,助力品牌高效抢占AI推荐红利,实现线索与订单双增长。(238字)
|
消息中间件 Java Apache
STOMP协议详解
STOMP协议详解 一、STOMP协议介绍 STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。
7338 0
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的非遗传承宣传平台
本项目基于SpringBoot、Vue、MySQL等技术,构建非遗传承宣传平台,实现非遗资源的数字化存储与传播。通过图文、视频、互动社区等形式,打破时空限制,提升公众参与度,助力传统文化保护与传承。
|
11月前
|
存储 Java 关系型数据库
ssm064农产品仓库管理系统系统(文档+源码)_kaic
农产品仓库管理系统基于现代经济快速发展和信息化技术的升级,采用SSM框架、Java语言及Mysql数据库开发。系统旨在帮助管理者高效处理大量数据信息,提升事务处理效率,实现数据管理的科学化与规范化。该系统涵盖物资基础数据管理、出入库订单管理等功能,界面简洁美观,符合用户操作习惯,并提供数据安全解决方案,确保信息的安全性和可靠性。通过自动化和集中处理,系统显著提高了仓库管理的效率和准确性。
|
Java
【数据结构】栈和队列的深度探索,从实现到应用详解
本文介绍了栈和队列这两种数据结构。栈是一种后进先出(LIFO)的数据结构,元素只能从栈顶进行插入和删除。栈的基本操作包括压栈、出栈、获取栈顶元素、判断是否为空及获取栈的大小。栈可以通过数组或链表实现,并可用于将递归转化为循环。队列则是一种先进先出(FIFO)的数据结构,元素只能从队尾插入,从队首移除。队列的基本操作包括入队、出队、获取队首元素、判断是否为空及获取队列大小。队列可通过双向链表或数组实现。此外,双端队列(Deque)支持两端插入和删除元素,提供了更丰富的操作。
297 0
【数据结构】栈和队列的深度探索,从实现到应用详解
计算机网络:传输媒体
计算机网络:传输媒体
354 1
|
Dubbo 关系型数据库 MySQL
nacos常见问题之配置环境变量
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
1556 6

热门文章

最新文章