You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS渐变与透明色实现虚实竖线并消除第四条线底部虚线

解决CSS背景每第四条线底部虚线残留问题

我有一段CSS背景代码,想要实现每第四条线为实线,但目前第四条线底部仍有虚线残留,需要在不取消颜色透明度的前提下解决这个问题。

原代码如下:

--c: rgba(84, 110, 122, 0.25) /* 颜色 */;
--t: 1px /* 线条厚度 */;
--g: 1%; /* 间距 */;
--d: 5px /* 虚线长度 */;
           
background:
  linear-gradient(90deg,var(--c) var(--t),#0000 0) calc(2*var(--g))/calc(4*var(--g)) 100%,
  conic-gradient(at var(--t) 50%,#0000 75%,var(--c) 0) 0/var(--g) var(--d);

解决方案:添加遮罩层隐藏指定位置的虚线

通过添加CSS遮罩,可以精准在每第四条线的位置遮掉下方的虚线,同时保留颜色透明度。修改后的代码如下:

--c: rgba(84, 110, 122, 0.25) /* 颜色 */;
--t: 1px /* 线条厚度 */;
--g: 1%; /* 间距 */;
--d: 5px /* 虚线长度 */;
           
background:
  linear-gradient(90deg,var(--c) var(--t),#0000 0) calc(2*var(--g))/calc(4*var(--g)) 100%,
  conic-gradient(at var(--t) 50%,#0000 75%,var(--c) 0) 0/var(--g) var(--d);
/* 添加遮罩,在每4个间距的位置(实线位置)隐藏虚线 */
mask: linear-gradient(90deg, #000 0 calc(4*var(--g) - var(--g)), #0000 0 calc(4*var(--g))) 0 0/calc(4*var(--g)) 100%;
-webkit-mask: linear-gradient(90deg, #000 0 calc(4*var(--g) - var(--g)), #0000 0 calc(4*var(--g))) 0 0/calc(4*var(--g)) 100%;

原理说明

  • 遮罩层以4*var(--g)为一个周期,前3个间距区域保留内容(显示虚线),第4个间距区域完全透明(隐藏虚线)。
  • -webkit-mask用于兼容webkit内核浏览器。
  • 该方法不会破坏原有颜色的透明度,完全满足需求。

内容的提问来源于stack exchange,提问作者pdcc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:15:39