利用css实现渐变色(通俗易懂)

本文详细介绍了如何使用CSS实现各种类型的渐变效果,包括线性渐变的四种方向设定,径向渐变的圆形与椭圆形应用,以及重复性径向渐变。此外,还讲解了边框颜色渐变,包括线性和径向两种方式,以及如何创建单侧边框渐变。最后,提供了一个CSS线性渐变颜色网站的资源链接,供进一步探索。

0、前言

使用边框颜色渐变之前,先了解一下以下三种渐变类型:

类型语法
线性渐变linear-gradient(方向, 颜色1, 颜色2, … ,颜色n)
径向渐变radial-gradient(颜色1 覆盖区域大小, 颜色2 覆盖区域大小, … )

注:线性渐变的方向可以为:

​ 1、一个方向值时: to bottom 表示从上边到下边

​ 2、两个方向值时: to right bottom 表示从左上角到右下角

​ 径向渐变的覆盖区域大小为百分比,表示该颜色覆盖的范围

​ 例如: radial-gradient(green 30%, yellow 80%);

​ 表示绿色占了整个区域的30%,黄色占了整个区域的20%,绿色与黄色过渡的部分占了整个区域的50%;

1、线性渐变

线性渐变使用linear-gradient,语法如下:

background-image: linear-gradient(渐变方向, 颜色1[位置1], 颜色2[位置2], 颜色3[位置3]...);

渐变方向有以下几种值:

  • 使用表示方位的单词

    to top 表示从下往上的方式进行渐变
    to bottom 表示从上往下的方式进行渐变
    to right 表示从左往右的方式进行渐变
    to left 表示从右往左的方式进行渐变
    to top left 表示从右下向左上进行渐变(top和left可以交换位置,下同)
    to top right 表示从左下向右上进行渐变
    to bottom left 表示从右上向左下进行渐变
    to bottom right 表示从左上向右下进行渐变

  • 使用角度表示,例如0deg等同于to top, 90deg等同于to right

  • 使用弧度,单位为rad

  • 使用turn,代表环绕圆圈的圈数,0.5turn表示半圈,也就是180deg

  • 使用grad,表示百分度,400grad表示360deg

2、径向渐变

径向渐变使用radial-gradient,语法如下:

background-image: radial-gradient(颜色1 覆盖区域大小, 颜色2 覆盖区域大小,);

2.1 径向渐变

2.1.1 圆形

.box {
	width: 200px;
	height: 200px;
	background-image: radial-gradient(circle, red, blue);
}

效果如下:
在这里插入图片描述

2.1.2 椭圆形

.box {
	width: 200px;
	height: 200px;
	background-image: radial-gradient(ellipse, red, blue);
}

效果如下:
在这里插入图片描述

2.2 重复性径向渐变

.box {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background-color: red;
	/* 针对不支持渐变的浏览器 */
	background-image: repeating-radial-gradient(red, yellow 10%, green 20%);
}

效果如下:
在这里插入图片描述

3、边框颜色渐变

3.1 边框渐变

3.1.1 线性渐变

语法如下:

border-image: linear-gradient(方向,颜色1,颜色2) 内向偏移量;

表示盒子有一个从左上角到右下角进行由黄色到绿色的5px宽的渐变边框

//边框的颜色为什么不重要,会被下面覆盖的
border: 5px solid;
//最后面跟的 5 表示内向偏移量,写成和边框设置的宽度一样即可
border-image: linear-gradient(to bottom right,yellow, green) 5;

效果如下:
在这里插入图片描述

3.1.2 径向渐变

语法如下:

border-image: radial-gradient(颜色1 百分比,颜色2 百分比…) 内向偏移量

表示盒子有一个从中心向到外进行由黄色到绿色的5px宽的渐变边框

//边框的颜色为什么不重要,会被下面覆盖的
border: 5px solid black;
//最后面跟的 5 表示内向偏移量,写成和边框设置的宽度一样即可  
border-image: radial-gradient(yellow 70%, green 130%) 5;

效果如下:
在这里插入图片描述

3.2 单侧边框渐变

3.2.1 底部边框线性渐变

从左到右,由透明开始向蓝色渐变

/*首先我们设置边框只显示底部,宽度为5px的实线。*/
border-bottom: 5px solid;
/*设置线性渐变*/
border-image: linear-gradient(90deg, rgba(0, 216, 247, 0) 0%, #00afed 100%) 5 5 5 5;

效果如下:
在这里插入图片描述

3.2.2 右侧边框线性渐变

从上到下,从起始开始,透明向蓝色渐变到20%的位置,然后又向透明进行渐变到99%的位置,99%到结束是透明

/*首先我们设置边框只显示右侧,宽度为5px的实线。*/
border-right: 5px solid;
/*设置线性渐变*/
border-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #00bbf2 20%, rgba(255, 255, 255, 0) 99%) 5 5 5 5;

效果如下:
在这里插入图片描述

4、扩展(CSS线性渐变颜色网站)

一个集合180种免费的线性渐变网站,可在任何网站使用您不仅可以复制渐变的原生CSS颜色代码,还可以查看下载每个优质的渐变图片。

链接:http://color.oulu.me

在这里插入图片描述

### 如何在CSS实现渐变效果 #### 使用线性渐变 (Linear Gradients) 通过 `linear-gradient()` 函数可以创建沿着一条直线变化的颜色过渡。该函数允许指定起始方向以及多个颜色停止点。 ```css .linear { width: 200px; height: 100px; background: linear-gradient(to right, red, yellow); } ``` 上述代码定义了一个从左到右由红色逐渐变为黄色的矩形区域[^1]。 #### 创建圆锥形渐变 (Conic Gradients) 尽管某些浏览器可能尚未完全支持原生的 `conic-gradient()` 功能,但可以通过第三方工具如 Lea Verou 的 polyfill 或 PostCSS 插件来提前体验这一特性。下面是一个简单的例子: ```css .conic { width: 200px; height: 200px; border-radius: 50%; background: conic-gradient(red, yellow, green, blue); } ``` 此示例展示了如何利用圆锥形渐变制作类似于饼图的效果。 #### 应用背景色调整 如果希望更改特定类别的背景属性,则可以直接修改其对应的 CSS 声明块中的 `background` 属性而非传统的 `background-color` 。例如,在 `.blue` 类下设置新的 HSL 颜色值作为背景填充方案之一[^2]: ```css .blue { background: hsl(240, 100%, 50%); } ``` #### 利用伪元素构建不规则形状 对于更复杂的图形需求,比如斜切面或者旋转后的色彩区块,可考虑借助 ::before 或 ::after 这样的伪元素配合 transform 来达成目标。如下所示的是一个带有倾斜角度紫色部分的小部件设计案例[^3]: ```css .third { width: 100px; height: 50px; background-color: #abcada; position: relative; overflow: hidden; } .third::before { position: absolute; width: 100px; height: 50px; background-color: violet; content: ""; left: 0; bottom: 0; transform-origin: left bottom; transform: rotate(30deg); } ``` #### 行内样式应用 当需要快速测试某个单一 HTML 元素上的视觉表现时,也可以采用行内样式的办法。只需给定标签增加 style 属性即可完成即时定制化展示[^4]: ```html <div style="width: 100%; padding-top: 50%; background: radial-gradient(circle at center, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));"></div> ``` 以上介绍了几种常见的 CSS 渐变技术及其实际应用场景,帮助开发者灵活运用这些技巧提升网页界面美观度。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端~初学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值