【css】渐变

渐变是设置一种颜色或者多种颜色之间的过度变化。

两种渐变类型:

  • 线性渐变(向下/向上/向左/向右/对角线)

  • 径向渐变(由其中心定义)

1、线性渐变

语法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);

其中direction是方向,值可以有bottom、right、top、left 。如果该参数参数值前面添加了to,则是渐变沿着相应的方向移动。如果省略了to,则为两个参数组合的方向,比如bottom right:右下角方向。

其中从上到下是默认的方向,可以不用添加direction参数。
1.1 默认方向

代码:

xml 复制代码
<head>
<style>
#grad1 {
  height: 200px;
  background-color: blue; /* 针对不支持渐变的浏览器 */
  background-image: linear-gradient(blue, yellow);
}
</style>
</head>
<body>

<div id="grad1"></div>

</body>

渲染效果:

1.2、从左到右

代码:

xml 复制代码
<head>
<style>
#grad1 {
  height: 200px;
  background-color: blue; /* 针对不支持渐变的浏览器 */
  background-image: linear-gradient(to right,blue, yellow);
}
</style>
</head>
<body>

<div id="grad1"></div>

</body>

渲染效果:

1.3 右下角

代码:

xml 复制代码
<style>
#grad1 {
  height: 200px;
  background-color: blue; /* 针对不支持渐变的浏览器 */
  background-image: linear-gradient(to bottom right,blue, yellow);
}
</style>
</head>
<body>

<div id="grad1"></div>

</body>

渲染效果:

2、径向渐变

径是指圆形的直径的径,以圆心为出发点,沿着径向渐变,和箭靶的效果差不多。

语法:

xml 复制代码
/* 在容器中心的渐变,从红色开始,变成蓝色,最后变成绿色 */
radial-gradient(circle at center, red 0, blue, green 100%)

边缘形状可以是圆形(circle)或椭圆形(ellipse)

形式语法

xml 复制代码
<radial-gradient()> = 
  radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )  

<size> = 
  <extent-keyword>              |
  <length [0,∞]>                |
  <length-percentage [0,∞]>{2}  

<position> = 
  [ left | center | right ] || [ top | center | bottom ]  |
  [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]?  |
  [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]  

<color-stop-list> = 
  <linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#  

<extent-keyword> = 
  closest-corner   |
  closest-side     |
  farthest-corner  |
  farthest-side    

<length-percentage> = 
  <length>      |
  <percentage>  

<linear-color-stop> = 
  <color>               &&
  <length-percentage>?  

<linear-color-hint> = 
  <length-percentage>  

代码:

xml 复制代码
<style>
#grad1 {
  height: 200px;
  width:200px;
  background-color: blue; /* 针对不支持渐变的浏览器 */
  background-image: radial-gradient(circle at center,#33691e, yellow);
}
</style>
</head>
<body>

<div id="grad1"></div>

</body>

渲染效果:

关于径向渐变的详细介绍可以参考MDN Web Docs社区

相关推荐
用户059540174469 小时前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css
kyriewen9 小时前
别再这样写TypeScript了——Code Review中最常见的8个反模式
前端·javascript·typescript
名字还没想好☜9 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
午安~婉9 小时前
GitHub Token/ GitHub Stats统计显示图异常
前端·github·vercel·github token
码云之上9 小时前
AI Agent 工程化总览篇:从 Prompt 到 Harness
前端·人工智能
2501_926978339 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
IT_陈寒10 小时前
Vite静态资源引用这个坑我踩得有点疼
前端·人工智能·后端
程序员黑豆10 小时前
鸿蒙应用开发:AttributeModifier 使用教程
前端·harmonyos
codeniu11 小时前
TRAE Work 实战 | 从"有个想法"到线上Demo,我全程只靠对话就完成了
前端·trae
妙码生花11 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十):增加管理员角色组管理
前端·后端·ai编程