repeating-linear-gradient()通过定义重复单元实现无限平铺的渐变效果,如条纹、虚线、点阵等;结合多层渐变、动画、背景固定和CSS变量可创造复杂动态背景,提升视觉表现与可维护性。

repeating-linear-gradient()
要使用
repeating-linear-gradient()
linear-gradient()
一个基础的
repeating-linear-gradient()
background: repeating-linear-gradient(direction, color1 stop1, color2 stop2, ...);
这里的
direction
45deg
to right
color1 stop1, color2 stop2
关键在于重复机制:
repeating-linear-gradient()
立即学习“前端免费学习笔记(深入)”;
举个例子,创建一个简单的红蓝条纹:
.striped-background {
background: repeating-linear-gradient(
45deg, /* 渐变方向为45度 */
#ff6b6b, /* 红色开始 */
#ff6b6b 10px, /* 红色持续到10px */
#4ecdc4, /* 蓝色从10px开始 */
#4ecdc4 20px /* 蓝色持续到20px */
);
width: 100%;
height: 200px;
}在这个例子中,
#ff6b6b 10px
#4ecdc4 10px
#4ecdc4 20px
repeating-linear-gradient()
repeating-linear-gradient()
1. 经典的条纹背景: 这是最基础也是最常用的场景。无论是水平、垂直还是斜向条纹,都能轻松实现。通过调整角度和色标长度,你可以控制条纹的粗细和方向。
/* 垂直条纹 */
.vertical-stripes {
background: repeating-linear-gradient(to right, #f0f0f0, #f0f0f0 15px, #e0e0e0 15px, #e0e0e0 30px);
height: 150px;
}
/* 细斜纹 */
.thin-diagonal-stripes {
background: repeating-linear-gradient(135deg, #eee, #eee 3px, #ccc 3px, #ccc 6px);
height: 150px;
}2. 虚线或点状图案: 通过巧妙地结合透明色,你可以模拟出虚线、点阵甚至网格效果。这种方法比用图片做虚线更灵活,因为你可以随时调整虚线的间距和颜色。
/* 水平虚线 */
.dashed-line {
background: repeating-linear-gradient(to right, transparent, transparent 10px, #aaa 10px, #aaa 12px);
height: 50px;
}
/* 简单的点阵(需要多层渐变) */
.dot-pattern {
background-color: #f8f8f8;
background-image:
repeating-linear-gradient(0deg, #ccc, #ccc 1px, transparent 1px, transparent 20px),
repeating-linear-gradient(90deg, #ccc, #ccc 1px, transparent 1px, transparent 20px);
background-size: 20px 20px; /* 控制点阵的密度 */
height: 200px;
}你看,通过两层渐变,我们就能在视觉上模拟出网格,是不是挺有意思的?
3. 几何图案和纹理: 这需要一点创意和对色标的精确控制。比如,可以创造出锯齿状、波浪线,甚至是某种编织纹理。
/* 锯齿边框效果 */
.sawtooth-edge {
background: repeating-linear-gradient(-45deg, #fff, #fff 5px, #000 5px, #000 10px);
height: 30px;
width: 100%;
}有时候,你会发现一些意想不到的颜色和角度组合能带来惊喜,这完全取决于你的想象力。
repeating-linear-gradient()
虽然
repeating-linear-gradient()
1. 色标的精确控制是关键,避免模糊重复:
repeating-linear-gradient()
linear-gradient()
background: repeating-linear-gradient(red, blue);
red 0px, red 10px, blue 10px, blue 20px
2. 透明度的妙用,创造层次感: 结合
rgba()
hsla()
.transparent-overlay {
background: repeating-linear-gradient(
45deg,
rgba(0,0,0,0.1) 0,
rgba(0,0,0,0.1) 5px,
transparent 5px,
transparent 10px
);
background-color: lightblue; /* 作为底层颜色 */
height: 150px;
}这种方式能让你的设计看起来更精致,不那么“死板”。
3. 与background-size
repeating-linear-gradient()
background-size
background-size
.custom-sized-pattern {
background: repeating-linear-gradient(45deg, #f0f, #f0f 5px, #0ff 5px, #0ff 10px);
background-size: 40px 40px; /* 将20px的重复单元放大到40px */
height: 200px;
}4. 性能考量: 纯CSS渐变通常比图片性能好,但在非常复杂的重复渐变中,浏览器渲染也需要计算。过度复杂的渐变层可能会影响性能,尤其是在旧设备上。我遇到过一些同事,为了追求极致的视觉效果,叠加了七八层渐变,结果在手机上就有点卡顿。所以,适度很重要,在追求美观的同时,也要兼顾用户体验。
repeating-linear-gradient()
repeating-linear-gradient()
1. 多层渐变叠加,创造复杂图案: 这是最常见的进阶用法。通过在
background
repeating-linear-gradient()
.complex-pattern {
background:
repeating-linear-gradient(45deg, #f00 0, #f00 5px, transparent 5px, transparent 10px), /* 第一层:红色斜线 */
repeating-linear-gradient(-45deg, #00f 0, #00f 5px, transparent 5px, transparent 10px), /* 第二层:蓝色斜线 */
#eee; /* 底色 */
background-size: 20px 20px; /* 控制所有渐变的重复单元大小 */
height: 200px;
}这种方式,我经常用来模拟一些材质纹理,比如布料的编织感,或者某种金属拉丝的效果。通过调整不同层渐变的透明度,还能做出更微妙的叠加效果。
2. 与background-attachment: fixed
repeating-linear-gradient()
background-attachment: fixed;
body {
background: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 10px, #e9e9e9 10px, #e9e9e9 20px);
background-attachment: fixed; /* 背景固定 */
/* 其他内容和高度以触发滚动 */
min-height: 150vh;
}3. 结合动画(@keyframes
transition
background-position
background-size
@keyframes move-stripes {
from { background-position: 0 0; }
to { background-position: 200px 0; } /* 沿着X轴移动200px */
}
.animated-stripes {
background: repeating-linear-gradient(90deg, #ffcc00, #ffcc00 20px, #ff6600 20px, #ff6600 40px);
background-size: 40px 40px; /* 定义重复单元的大小 */
animation: move-stripes 5s linear infinite; /* 5秒线性无限循环动画 */
height: 100px;
}这种动态效果,尤其是在加载动画或者某些交互反馈上,能带来非常棒的用户体验,让页面看起来更有活力。
4. 利用自定义属性(CSS Variables)增强可维护性和灵活性: 将重复渐变中的颜色、大小、角度等参数定义为CSS变量,可以更方便地管理和修改,尤其是在需要主题切换或响应式调整时,非常灵活。
:root {
--stripe-color-a: #a0c4ff;
--stripe-color-b: #bdb2ff;
--stripe-width: 15px;
--stripe-angle: 60deg;
}
.themable-stripes {
background: repeating-linear-gradient(
var(--stripe-angle),
var(--stripe-color-a),
var(--stripe-color-a) var(--stripe-width),
var(--stripe-color-b),
var(--stripe-color-b) calc(var(--stripe-width) * 2)
);
height: 150px;
}
/* 切换主题时,只需修改变量 */
@media (prefers-color-scheme: dark) {
:root {
--stripe-color-a: #3a0ca3;
--stripe-color-b: #4361ee;
}
}这对于维护大型项目或者需要快速迭代设计稿的场景来说,简直是神器,大大提高了开发效率和代码的可读性。
以上就是如何使用CSS的repeating-linear-gradient()函数创建重复渐变?重复渐变丰富背景设计的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号