渐变生成器
CSS 渐变类型详解
线性渐变 linear-gradient
沿一条直线方向过渡颜色,用 linear-gradient(angle, color1, color2, ...) 定义。角度 0deg 表示向上,90deg 表示向右。W3C 于 CSS Image Values Level 3 规范中正式引入,是最常用的渐变类型。
径向渐变 radial-gradient
从一个中心点向外辐射扩散颜色。可指定形状为 circle(正圆)或 ellipse(椭圆),以及中心位置。适用于光晕、按钮高光等效果。
锥形渐变 conic-gradient
围绕中心点旋转渐变,类似色轮。由 Lea Verou 提出并纳入 CSS Image Values Level 4 规范,适合制作饼图、色环。
语法参考
/* 线性 */ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); /* 径向 */ background: radial-gradient(circle at center, #00c6ff, #0072ff); /* 锥形 */ background: conic-gradient(from 0deg at 50% 50%, red, yellow, lime, aqua, blue, magenta, red);
浏览器兼容性
| 类型 | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| linear-gradient | 26+ | 16+ | 6.1+ | 12+ |
| radial-gradient | 26+ | 16+ | 6.1+ | 12+ |
| conic-gradient | 69+ | 83+ | 12.1+ | 79+ |
性能注意事项
CSS 渐变由 GPU 合成,性能优于图片。但应避免在大量元素上使用复杂多色渐变(超过 6 个色节点)。动画渐变时,优先使用 CSS 自定义属性 + @property 注册以触发 GPU 动画,而非逐帧重写 background。
FAQ
如何叠加多个渐变?
用逗号分隔多个渐变值即可:background: linear-gradient(...), radial-gradient(...);。后面的渐变在下层。配合透明色可制作条纹、网格等图案。
能用渐变给文字上色吗?
可以。设置 background: linear-gradient(...); -webkit-background-clip: text; -webkit-text-fill-color: transparent; 即可实现渐变文字效果。
渐变可以动画吗?
原生 CSS 不能直接过渡渐变颜色。推荐两种方法:1)使用 @property 注册自定义属性实现真正的渐变过渡;2)用伪元素 opacity 在两个渐变间切换。
渐变和图片哪个性能更好?
渐变无需额外 HTTP 请求,且由浏览器矢量渲染,在任何分辨率下保持清晰。对简单背景来说,渐变比等效图片更快。只有极复杂的多层渐变才可能不如优化过的单张图片。