CSS渐变中色标重叠可形成硬边条纹,当相邻色标值完全相同时浏览器瞬间切换颜色,产生清晰条纹。需配合background-size设置周期长度实现平铺,所有色标单位必须统一,否则易出现渲染错误或显示异常。
CSS 渐变可用于生成条纹背景,这看似与 linear-gradient 的平滑过渡特性相悖。其原理在于:当相邻色标值完全重合时,浏览器放弃插值,实现颜色瞬间切换,从而形成清晰边界。
使用 linear-gradient 实现条纹的关键并非制作渐变,而是在特定位置让颜色硬切换——相邻色标值相等时,浏览器放弃插值,直接产生清晰边界。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
linear-gradient 能生成条纹而非渐变?CSS 渐变的色标(color stop)允许重叠。当两种颜色指定同一位置(例如 red 50%, blue 50%),浏览器会在该点瞬间切换,不产生过渡或模糊。
linear-gradient(to bottom, #2c3e50 4px, #34495e 4px) —— 深色在 4px 处结束,灰色在 4px 处开始,形成硬边linear-gradient(to bottom, #2c3e50 4px, #34495e 4.1px) —— 中间 0.1px 被插值,导致边缘发虚甚至呈现灰阶red 50%, white 50% 可行,不应与 10px 混用在同一个声明中background-size 必须显式设置,否则条纹会拉伸或消失linear-gradient 本身仅定义一个“片段”,不会自动重复;依靠 background-size 配合默认的 repeat 属性实现平铺。若遗漏 background-size,浏览器会按元素尺寸拉伸整个片段,导致条纹消失。
background-size: 100% 20px → 高度 20px 为一个周期,宽度撑满容器background-size: 10px 100% → 宽度 10px 为一个周期,高度撑满容器45deg 配合 background-size: 30px 30px 在高 DPR 屏上容易错位或产生锯齿;更稳妥的做法是先用 to right + background-size: 10px 100%,再对容器添加 transform: rotate(45deg)关键在于色标顺序与数值的设定。每段条纹由“前色结束位置 = 后色开始位置”定义,总周期长度为最后一个色标值。
linear-gradient(to bottom, red 0, red 10px, white 10px, white 20px, blue 20px, blue 30px),配合 background-size: 100% 30pxlinear-gradient(to bottom, red 0, red 5px, white 5px, white 20px),周期总长 20px,background-size: 100% 20pxlinear-gradient(white 1px, transparent 0) → 白线仅 1px 高,其余部分全透明;注意必须写 transparent 0,不可省略单位或写成 0%,否则 Safari 可能无法识别repeating-linear-gradient 相比,实际区别有哪些?repeating-linear-gradient 为原生重复机制,而 linear-gradient + background-size 属于模拟重复。前者语义清晰、容错性强;后者在容器尺寸非周期整数倍时,可能出现边缘截断或拉伸变形。
linear-gradient 版本最后一段仅剩 5px,浏览器会拉伸补满,导致该条纹变厚;repeating-linear-gradient 则严格按照 20px 无限平铺,不依赖容器尺寸repeating-linear-gradient 在 IE10+ 中不支持带前缀写法;如需兼容旧版本,降级方案可手动写出完整周期的 linear-gradient 并显式设置 background-sizelinear-gradient 多层叠加更易控制,因为每层可独立设置 background-position 实现像素对齐,避免重叠漏缝最易被忽略的一点:所有色标单位必须统一(全用 px 或全用 %),且 background-size 的对应维度必须等于周期总长——这并非“差不多就行”的细节,相差 1px 即可能导致 Safari 渲染为纯色块。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述