- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS - 渐变
CSS 渐变允许通过在两种或多种颜色之间创建平滑过渡来为 HTML 元素设计自定义颜色。
什么是 CSS 渐变?
- 在CSS中,渐变是一种特殊类型的用户定义图像,可用于元素的背景或边框。
- 我们可以使用函数 gradient(type, color1, color2, color3) 为任何 HTML 元素的背景属性设置渐变;
- 缩放图像渐变不会降低其质量,因为这是由浏览器根据开发人员代码定义的。
CSS 渐变的类型
CSS 定义了三种类型的渐变
- 线性梯度: 从左到右、从上到下或沿对角线移动。
- 径向梯度: 从中心到边缘。
- 圆锥梯度: 围绕一个中心点旋转。
线性梯度
线性渐变创建一个沿单一方向流动的颜色带,即从左到右、从上到下或以任何角度流动。
语法
linear-gradient(direction, color1, color2, ...);
/* Gradient from bottom right to top left */
linear-gradient(to top left, color1, color2, ...);
/* Gradient at an angle 45 degree */
linear-gradient(45deg, red, yellow);
direction 参数指定角度或方向 ( [向左 | 向右] ||[返回顶部 | 返回底部])的梯度。
例为了创建基本的线性渐变,您只需要两种颜色,它们被称为色标。您必须至少有两个,但也可以有两个以上。
以下示例演示了这一点:
<html>
<head>
<style>
div {
height: 70px;
width: 100%;
}
.topBottom {
background: linear-gradient(green, yellow);
}
.RightLeft{
background: linear-gradient(to right, green, yellow);
}
</style>
</head>
<body>
<h1>Linear gradient</h1>
<h3>Top to Bottom ( Default )</h3>
<div class="topBottom"></div>
<h3>Right to left</h3>
<div class="RightLeft"></div>
</body>
</html>
径向梯度
径向渐变是一种渐变,由从中心点向外辐射的颜色组成。
在径向渐变中,颜色以圆形或椭圆形图案从中心的一种颜色平滑过渡到外边缘的另一种颜色。
语法
radial-gradient(shape size position, color1, color2..);
- shape 参数定义渐变(圆形或椭圆)的形状。
- size 参数指定形状的大小。
- position 参数设置渐变的中心
为了创建基本的径向渐变,您只需要两种颜色。默认情况下,梯度的中心位于 50% 50% 标记处;其中渐变是椭圆形的,与其框的纵横比匹配。
让我们看一个例子:
<html>
<head>
<style>
div {
height: 100px;
width: 100%;
}
.gradient {
background: radial-gradient(green, yellow);
}
.center-gradient {
background:
radial-gradient(
at 0% 50%,
green 30px,
yellow 60%,
magenta 20%
);
}
</style>
</head>
<body>
<h1>Radial gradient</h1>
<h3>Simple Radial Gradient</h3>
<div class="gradient"></div>
<h3>Center Positioned Radial Gradient</h3>
<div class="center-gradient"></div>
</body>
</html>
圆锥梯度
圆锥形渐变,也称为圆锥形渐变或角渐变,是一种渐变类型,其中颜色以圆形或圆锥形图案排列,从 360 度弧形的中心点向外辐射。
语法
conic-gradient(from 'angle' at 'position', 'color-list')
- position(可选):指定渐变起点的位置。它可以是百分比或关键字,例如中心。
- angle (可选):指定渐变的起始角度(以度为单位)。
- color-list :定义颜色及其在渐变中的位置。
在此示例中,我们将创建一个具有四种不同颜色的圆锥梯度饼图,然后在图表的不同位置对齐梯度。
<!DOCTYPE html>
<html lang="en">
<head>
<style>
div {
height: 80px;
width: 110px;
border-radius: 50%;
}
.gradient1{
background: conic-gradient(
from 45deg at 50% 50%,
red, yellow, green,
blue, red);
}
.gradient2{
background: conic-gradient(
from 45deg at 20% 40%,
red, yellow, green,
blue, red);
}
</style>
</head>
<body>
<h1>Conic Gradient Example</h1>
<h3>Align at center</h3>
<div class="gradient1"></div>
<h3>Align at 20-40</h3>
<div class="gradient2"></div>
</body>
</html>
边界的渐变
CSS 渐变也可用于创建花哨的边框。您可以使用各种渐变在边框图案中创建效果。
语法
border-image: linear-gradient('color-list')
您还可以使用径向和圆锥形渐变作为边框。
以下是在创建边界时使用渐变的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.gradient-border {
height: 200px;
width: 200px;
border: 10px solid;
border-image: linear-gradient(
to right,
red, yellow,
green, blue) 1;
}
</style>
</head>
<body>
<h2>Gradient Border </h2>
<div class="gradient-border"></div>
</body>
</html>
定位色标
通过定位渐变色标,可以控制渐变发生过渡的点。
语法
linear-gradient(to right, red 10%, pink 30%, blue 60%)
- to right: 指定渐变的方向。
- red 10%: 将红色设置为在渐变的 10% 处停止
- pink 30%: 将粉红色设置为在渐变的 30% 处停止。
- blue 60%: 将蓝色设置为在渐变的 60% 处停止。
例
<html>
<head>
<style>
div {
height: 100px;
width: 100%;
}
.linear-position {
background: linear-gradient(to right,
blue 15px, magenta 33%,
red 66%, yellow 60%,
orange 100%);
}
</style>
</head>
<body>
<div class="linear-position"></div>
</body>
</html>
创建强硬的线条
可以在两种颜色之间创建一条硬线,这样就无法看到平滑的过渡。这种效果可以通过在 CSS 渐变中仔细定位色标来实现。请看以下示例
例在这个例子中,我们将使用梯度函数创建硬线。
<html>
<head>
<style>
div {
height: 100px;
width: 100px;
display: inline-block;
text-align: center;
margin: 5px;
}
.linear-hard-line {
background: linear-gradient(to top right,
green 50%, orange 50%);
}
</style>
</head>
<body>
<div class="linear-hard-line"></div>
</body>
</html>
使用渐变的颜色条带
为了创建条纹效果,将每种颜色的第二个色标设置在与相邻颜色的第一个色标相同的位置。
语法
linear-gradient(to right, red 10%,
pink 10% 30%,
blue 60% 80%,
yellow 80%);
例
在此示例中,将创建一个多色色带。
<html>
<head>
<style>
div {
height: 100px;
width: 100%;
}
.linear-gradient-stripes {
background: linear-gradient(
to right,
green 20%,
lightgreen 20% 40%,
orange 40% 60%,
yellow 60% 80%,
red 80%);
}
</style>
</head>
<body>
<div class="linear-gradient-stripes">
</div>
</body>
</html>
堆叠渐变
一个梯度可以叠加在其他梯度上。只需确保顶部的渐变不应完全不透明,以便可以看到其下方的渐变。
例让我们看一个堆叠渐变的例子。
<html>
<head>
<style>
div {
height: 200px;
width: 100%;
}
.stacked-linear {
background:
linear-gradient(90deg, green, yellow),
linear-gradient(220deg, white 70.71%, black 38%),
linear-gradient(217deg, orange, grey 70.71%);
}
</style>
</head>
<body>
<div class="stacked-linear">
</div>
</body>
</html>
相关功能
下表列出了与 CSS 渐变相关的所有函数:
梯度类型 | 描述 | Example |
---|---|---|
linear-gradient() | 颜色从一个点到另一个点的直线过渡的渐变类型。 | |
radial-gradient() | 由从中心点向外辐射的颜色组成的渐变类型。 | |
conic-gradient() | 颜色以圆形或圆锥形图案排列的渐变类型。 | |
repeating-linear-gradient() | 允许您创建在指定方向上重复的线性渐变模式。 | |
repeating-radial-gradient() | 允许您创建重复的径向渐变图案。 | |
repeating-conic-gradient() | 允许您创建重复的圆锥渐变图案。 |