CSS3 渐变效果

1. 引言

CSS3 渐变能够在指定颜色之间创建平滑过渡效果。这种设计元素不仅能为网页增添丰富的视觉层次,更是现代网页设计的重要组成部分。CSS3 提供两种主要的渐变类型:线性渐变(Linear Gradient) - 沿直线方向进行颜色过渡;径向渐变(Radial Gradient) - 以中心点为起点向外扩散的颜色变化。

2. 线性渐变(Linear Gradients)

2.1 基本语法

js 复制代码
background: linear-gradient(direction, color-stop1, color-stop2, ...);

2.2 方向设置

  • 使用角度:
css 复制代码
/* 0deg 从下到上 */
/* 45deg 从左下角到右上角 */
/* 90deg 从左到右 */
/* 180deg 从上到下 */
/* 270deg 从右到左 */
.angle-gradient {
    background: linear-gradient(45deg, #ff0000, #00ff00);
}

效果图:

  • 使用关键词:
css 复制代码
/* 可用值:to top, to bottom, to left, to right, to top left, to top right 等 */
.keyword-gradient {
    background: linear-gradient(to right, #ff0000, #00ff00);
}

效果图:

2.3 颜色节点设置

css 复制代码
/* 使用百分比控制颜色分布 */
.color-stops {
    background: linear-gradient(to right,
        red 0%,
        orange 25%,
        yellow 50%,
        green 75%,
        blue 100%
    );
}

效果图:

3. 径向渐变(Radial Gradients)

3.1 基本语法

css 复制代码
background: radial-gradient(shape size at position, color-stop1, color-stop2, ...);

3.2 形状和大小

形状配置

  • circle:生成圆形渐变。
  • ellipse:生成椭圆形渐变(默认值)。

大小配置

  • closest-side:渐变结束于离中心最近的边。
  • farthest-side:渐变结束于离中心最远的边。
  • closest-corner:渐变结束于离中心最近的角。
  • farthest-corner:渐变结束于离中心最远的角(默认值)。
css 复制代码
/* 圆形渐变 */
.circle-gradient {
    background: radial-gradient(circle, #ff0000, #00ff00);
}

/* 椭圆形渐变 */
.ellipse-gradient {
    background: radial-gradient(ellipse, #ff0000, #00ff00);
}

/* 大小配置 */
background: radial-gradient(closest-side circle, red, blue);

效果图

3.3 位置设置

css 复制代码
/* 使用关键词 */
.position-gradient {
    background: radial-gradient(circle at center, #ff0000, #00ff00);
}

/* 使用具体值 */
.custom-position {
    background: radial-gradient(circle at 100px 100px, #ff0000, #00ff00);
}

效果图:

4. 重复渐变

4.1 重复线性渐变

css 复制代码
.repeating-linear {
    background: repeating-linear-gradient(
        45deg,
        #ff0000 0px,
        #ff0000 10px,
        #00ff00 10px,
        #00ff00 20px
    );
}

效果图:

4.2 重复径向渐变

css 复制代码
.repeating-radial {
    background: repeating-radial-gradient(
        circle at center,
        #ff0000 0px,
        #ff0000 10px,
        #00ff00 10px,
        #00ff00 20px
    );
}

5. 高级技巧

5.1 多重渐变叠加

css 复制代码
.multiple-gradients {
    background: 
        linear-gradient(45deg, rgba(255,0,0,0.5), transparent),
        linear-gradient(-45deg, rgba(0,0,255,0.5), transparent);
}

效果图:

5.2 渐变文字效果

css 复制代码
.gradient-text {
    background: linear-gradient(45deg, #ff0000, #00ff00);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

效果图:

6. 浏览器兼容性

为了确保在不同浏览器中正常显示渐变效果,建议添加浏览器前缀:

css 复制代码
.cross-browser-gradient {
    background: -webkit-linear-gradient(left, #ff0000, #00ff00);    /* Safari 5.1-6 */
    background: -o-linear-gradient(right, #ff0000, #00ff00);        /* Opera 11.1-12 */
    background: -moz-linear-gradient(right, #ff0000, #00ff00);      /* Firefox 3.6-15 */
    background: linear-gradient(to right, #ff0000, #00ff00);        /* 标准语法 */
}
相关推荐
里欧跑得慢30 分钟前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
IT_陈寒42 分钟前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端
小灰灰搞电子1 小时前
Rust+Slint 实现温度计源码分享
前端·rust·slint
计算机魔术师1 小时前
面壁智能 OpenBMB 推出 MathForm,面向 Lean 4 数学自动形式化的开源框架、数据集与模型
前端
NeilCarmack2 小时前
Deepseek-harness增加桌面版端序列:第 2 讲 · spawn Electron:当前进程如何“交棒“
前端·javascript·electron
上海魁鲸科技有限公司3 小时前
APS高级排产系统到底有什么用?一文讲清功能、选型与落地建议
前端·microsoft·excel
陈随易3 小时前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
东风破_4 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript
DS随心转插件4 小时前
Grok生成的html怎么导出——AI导出鸭:大模型结构化输出的“最后一公里”工程化解构
前端·人工智能·ai·html·豆包·deepseek·ai导出鸭
এ慕ོ冬℘゜5 小时前
使用 jQuery 动态渲染表格与状态切换
前端·javascript·jquery