沉浸式阅读
Beta
原创

纯CSS实现多标签自动显示超出数量的思路详解

©著作权     黑土Ai助手 订阅CSS相关       昨天 17:41       2      0      0      0      昨天 17:45
Ai摘要有多个宽度不同的标签水平排列,当外层宽度不足时,会自动提示超出的数量,这篇文章主要介绍了纯 CSS 实现多标签自动显示超出数量的思路详解,需要的朋友可以参考下
DeepSeek v3

实例效果:

css实现:有多个宽度不同的标签水平排列,当外层宽度不足时,会自动提示超出的数量

CSS 如何动态累计数字?

利用 CSS计数器

counter-reset: num var(--num);
counter-increment: num;
::after{
    content: "+"counter(num);
}


CSS 如何知道哪些元素在容器之外?

CSS滚动驱动动画。这里用到的是视图进度,也就是关注的是元素自身位置,元素进入到容器范围之内就会触发动画,非常类似 JS中的Intersection Observer

tag{
  animation: appear;
  animation-timeline: view(inline);
  animation-range: contain;
}
@keyframes appear{
  to {
    background-color: #9747FF;
  }
}

CSS 如何区分是否溢出(显示数量)

利用CSS滚动驱动动画,可以检测容器是否可滚动,也就是是否超出。所以我们只需要将遮罩放在滚动驱动动画里就行了,关键实现如下

.con{
  animation: check;
  animation-timeline: scroll(x self);
}
@keyframes check{
  from,to {
    -webkit-mask: linear-gradient(to right, #fff calc(100% - 30px), transparent);
  }
}


完整代码

<div class="wrap">
  <div class="con" style="--num:7">
    <a class="tag">HTML</a>
    <a class="tag">CSS</a>
    <a class="tag">JavaScript</a>
    <a class="tag">Flutter</a>
    <a class="tag">Vue</a>
    <a class="tag">React</a>
    <a class="tag">Svelte</a>
  </div>
</div>
html,body{
  font-family: -apple-system, "BlinkMacSystemFont", sans-serif;
  margin: 0;
  height: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  background: #fff;
  gap: 20px;
  accent-color: #9747FF;
}
.wrap{
  width: 300px;
  display: flex;
  align-items: center;
  padding: 15px;
  outline: 2px solid #9747FF;
  gap: 5px;
  overflow: hidden;
}
.con{
  position: relative;
  display: flex;
  gap: 5px;
  padding: 5px;
  overflow: hidden;
  counter-reset: num;
  animation: check;
  animation-timeline: scroll(x self);
  margin-right: -46px;
}
@keyframes check{
  from,to {
    margin-right: 0;
    -webkit-mask: linear-gradient(to right, #fff calc(100% - 30px), transparent);
  }
}
.wrap::after{
  content: "+"counter(num);
  padding: .2em .5em;
  background-color: #FFE8A3;
  color: #191919;
  border-radius: 4px;
}
.tag{
  padding: .2em .5em;
  background-color: #c49ef5;
  color: #fff;
  border-radius: 4px;
  counter-increment: num 1;
  animation: appear;
  animation-timeline: view(inline);
  animation-range: contain;
}
@keyframes appear{
  from,to {
    background-color: #9747FF;
    counter-increment: num 0;
  }
}


 

收藏 0

评论 0

本文标题: 纯CSS实现多标签自动显示超出数量的思路详解

本文链接: https://www.mbkfw.com/course/c-1343.html (转载时请注明来源链接)

本文说明: 有问题或投稿请发送至: 邮箱/kf@dtmuban.com    QQ/290948585

特别鸣谢: 如果您觉得本文对您有帮助,请给我们一个小小的赞,收藏本文更利于反复学习哦!

0

圈友点评

文明上网理性发言,请遵守网络评论服务协议
destoon程序前端开发标签生成器

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“商企云服”
"模板开发网前端开发教学"
每日干货技术分享
 

开发者社区-1343

纯CSS实现多标签自动显示超出数量的思路详解

分享来自「 MBKFW.COM 」

①保存图片到相册
②打开微信扫一扫

正在生成海报, 请稍候
【开发者社区】纯CSS实现多标签自动显示超出数量的思路详解 的推广海报
复制海报
下载海报

色彩

关注

微信
关注

微信扫一扫
不同的环境体验

幸运大转盘,好礼等您拿

模板开发网公众号

模板开发网微信小程序

代授权

程序
授权

黑小二

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。咨询客服

联系客服:

在线QQ: 290948585

客服电话: 18605917465

E_mail邮箱: kf@dtmuban.com

微信公众号: 商企云服

微信小程序: 模板开发

QQ客服微信客服DT授权代办在线交谈智能小云黑土AI

工作时间:

周一至周五: 09:00 - 18:00

APP下载

安卓
APK

模板开发网安卓版APP