渐变生成器

角度 / 方向
颜色节点
预设方案

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);

浏览器兼容性

类型ChromeFirefoxSafariEdge
linear-gradient26+16+6.1+12+
radial-gradient26+16+6.1+12+
conic-gradient69+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 请求,且由浏览器矢量渲染,在任何分辨率下保持清晰。对简单背景来说,渐变比等效图片更快。只有极复杂的多层渐变才可能不如优化过的单张图片。

💬 留言讨论