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

如何实现带间隙的重复背景图像?(信纸样式需求)

如何在重复背景图像之间设置间隙?

当然可以,你可以通过自定义SVG背景图结合CSS属性实现重复图像间的间隙,同时解决repeating-linear-gradient带来的亚像素渲染问题。

问题分析

你尝试的线性渐变方案在窗口较小时线条变淡,本质是亚像素渲染导致的:当渐变的起止位置计算后落在像素边界之间,浏览器会进行半透明插值,让线条看起来模糊。

解决方案

CSS 配置

通过指定SVG背景图,并设置background-size为1.5em 1.5em,让背景在垂直方向每1.5em重复一次,刚好实现线条间的间隙,水平方向则自动铺满容器:

h1,
h2 {
    font-size: clamp(6.4rem, 4vw, 8rem);
    line-height: 1.5em;
    background-image: url("images/lines.svg");
    background-size: 1.5em 1.5em;
}

SVG 细节优化

为了保证线条在缩放时始终保持1px宽度,你制作的SVG加入了vector-effect="non-scaling-stroke"属性,同时设置了合适的 viewBox和尺寸:

<svg enable-background="new 0 0 120 120" viewBox="0 0 120 120" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
    <path d="m0 119h120" fill="none" stroke="#000" stroke-width="1px" vector-effect="non-scaling-stroke"/>
</svg>

这里的120px×120px尺寸是基于最大字体尺寸(8rem=80px)乘以1.5计算而来,确保SVG在最大缩放比例下也能完整显示线条,避免裁剪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:50:22