如何创建 CSS 渐变

· 5 分钟阅读

CSS渐变让您无需图像文件就能创建平滑的颜色过渡。它们比图像更轻量,完美适应任何屏幕大小,并且易于定制。与等效的JPG或PNG相比,典型的装饰性渐变可以节省20-100 KB,并且可以缩放到任何分辨率而不会损失质量。

CSS渐变的类型

线性渐变:颜色沿直线过渡(从上到下、从左到右,或任何角度)。

background: linear-gradient(135deg, #667eea, #764ba2);

径向渐变:颜色从中心点向外辐射,呈圆形或椭圆形图案。

background: radial-gradient(circle, #667eea, #764ba2);

圆锥渐变:颜色围绕中心点旋转,像色轮一样。

background: conic-gradient(from 0deg, #667eea, #764ba2, #667eea);

如何可视化创建渐变

  1. 选择渐变类型:选择线性或径向,并设置角度或位置。
  2. 添加颜色停止点:点击在渐变上的不同位置添加颜色。调整每种颜色及其位置。
  3. 复制CSS:复制生成的代码并粘贴到您的样式表中。

使用可视化生成器比手动编写渐变语法更快,特别是在试验多个颜色停止点时。

CSS渐变的简史

在CSS渐变出现之前,网页设计师必须为任何渐变效果使用背景图像:水平平铺单列GIF,或将Photoshop PSD切片成多个JPG。这有效但增加了文件重量、网络请求,并在缩放时出现像素化。

WebKit在Safari 4(2009年6月)中添加了第一个-webkit-gradient()实现,语法冗长且难以阅读。Firefox 3.6(2010年1月)随后推出了-moz-linear-gradient()。CSS工作组在CSS Image Values Level 3(2012)中标准化了无前缀的linear-gradient()radial-gradient(),此时浏览器前缀开始消失。

圆锥渐变(conic-gradient())出现晚得多,首次在Chrome 69(2018年9月)中发布,在Safari 12.1(2019年3月)中达到所有主流浏览器。它们启用了以前没有图像就不可能实现的视觉模式:饼图、色轮、棋盘、放射状图案。

CSS渐变现在被认为是基线浏览器功能。几乎所有您可能想要的渐变效果都可以在CSS中实现,无需图像或JavaScript。

常见的渐变模式

英雄区背景:细微的双色渐变增加深度,不会分散文本注意力。

background: linear-gradient(135deg, #0f172a, #1e3a5f);

按钮高亮:轻微的渐变使按钮感觉立体。

background: linear-gradient(180deg, #3b82f6, #2563eb);

图像上的叠加层:渐变叠加层提高了照片上文本的可读性。

background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.7));

强调边框:使用渐变作为边框以增加视觉趣味。

border-image: linear-gradient(90deg, #667eea, #764ba2) 1;

动画网格渐变:堆叠多个径向渐变并动画化位置。

background:
  radial-gradient(at 20% 30%, #667eea 0%, transparent 50%),
  radial-gradient(at 80% 70%, #764ba2 0%, transparent 50%),
  #0f172a;

玻璃态背景:将低不透明度渐变与backdrop-filter模糊配对。

background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
backdrop-filter: blur(10px);

颜色停止点定位

默认情况下,颜色停止点是均匀分布的。您可以覆盖它们的位置来控制每种颜色出现的位置:

/* 黄色在中间60%,在边缘渐变为红色 */
background: linear-gradient(90deg, red 0%, yellow 20%, yellow 80%, red 100%);

您还可以使用硬停止点创建条纹或几何图案,无需抗锯齿:

/* 双色条纹无过渡 */
background: linear-gradient(45deg, #667eea 50%, #764ba2 50%);

诀窍是将两个颜色停止点放在相同位置。浏览器不会在它们之间插值,产生锐利的边缘。

何时使用渐变与纯色与图像

常见模式是将三者分层:纯色基础、CSS渐变叠加层和顶部低不透明度纹理图像。

常见陷阱

提示

隐私

CSS渐变生成器完全在您的浏览器中运行。您选择的颜色、您尝试的渐变配置以及您生成的CSS永远不会离开您的设备。没有遥测,没有使用跟踪,没有上传您的设计选择。对于设计探索期间使用的工具,这很重要:您尝试的颜色和模式可能会泄露即将到来的品牌方向、未宣布的产品主题或NDA下的客户工作。仅浏览器生成将所有这些保留在您的机器上。

常见问题

CSS 渐变在所有浏览器都工作吗?

是的。线性和径向渐变在所有现代浏览器(包括 Chrome、Firefox、Safari 和 Edge)都受支持。锥形渐变的支持稍新,但在所有当前版本中都能使用。

可以使用两种以上颜色吗?

可以。CSS 渐变支持任意数量的色标。每个色标定义沿渐变的一个颜色和位置。

渐变会影响性能吗?

不会。CSS 渐变由浏览器渲染,比图像文件轻得多。它们在任何屏幕尺寸下完美缩放,且无需额外下载。

可以让渐变做动画吗?

不能直接使用 CSS transition 对 background 属性做动画,但可以对 background-position 做动画,或使用带 @property 的 CSS 自定义属性来创建流畅的渐变动画。