如何用CSS样式实现一个优雅的渐变效果?

工作站 (15).jpg
在这里插入图片描述

CSS渐变效果

CSS渐变(Gradients)是一种让两种或多种颜色平滑过渡的视觉效果,广泛应用于网页背景、按钮、边框等,以创造丰富的视觉体验。CSS提供了线性渐变(Linear Gradients)和径向渐变(Radial Gradients)两种主要类型。

image.png

基本语法

线性渐变(Linear Gradient)

线性渐变使颜色沿直线方向过渡。

其基本语法如下:

background: linear-gradient(direction, color-stop1, color-stop2, ...);
  • direction:定义了渐变的方向,具体包括以下两种,关键词和角度值:

    1. 关键词:
    • to top: 渐变从下到上。
    • to right: 渐变从左到右。
    • to bottom: 渐变从上到下(默认值)。
    • to left: 渐变从右到左。
    • to top left: 渐变从右下到左上。
    • to top right: 渐变从左下到右上。
    • to bottom right: 渐变从左上到右下。
    • to bottom left: 渐变从右上到左下。
    1. 角度值:
    • 角度值允许使用度数(deg)来指定渐变的方向,如 45deg 表示从左下到右上的45度角渐变。角度值范围通常是0deg到360deg,其中0deg等同于to right,90deg等同于to top,180deg等同于to left,270deg等同于to bottom。

image.png

  • color-stop :定义渐变中颜色的切换点及其颜色值。每个color-stop代表渐变中一个颜色的开始或结束位置,以及那个位置上的确切颜色。它有助于控制渐变中颜色过渡的精确位置,使得渐变效果更加细腻和可控。color-stop可以通过两种方式指定:
    • 直接颜色值:直接提供颜色值,CSS引擎会自动分配它们之间的空间。例如,linear-gradient(to right, red, yellow)中,红色到黄色的渐变自动均匀分布。

    • 带有位置的颜色值:除了颜色,还可以指定颜色在渐变线上的位置。位置可以是百分比(如20%)或长度值(如100px),它表示颜色停止点相对于渐变总长度的位置。例如,linear-gradient(to right, red 20%, yellow 80%)指定了红色在20%的位置结束,黄色从那里开始,直到80%的位置。

在实际应用中,可以使用多个color-stop来创建复杂的渐变效果,每个color-stop之间用逗号分隔。例如:

background-image: linear-gradient(to bottom, red, orange 20%, yellow 40%, green 60%, blue 80%, purple);

在这个例子中,渐变从顶部的红色开始,到20%高度时变为橙色,接着在40%高度变为黄色,以此类推,直到底部变为紫色。通过精确控制color-stop的位置,可以实现非常细腻和定制化的渐变效果。

径向渐变(Radial Gradient)

径向渐变使颜色从中心点向外辐射过渡。

基本语法如下:

background: radial-gradient(shape size at position, color-stop1, color-stop2, ...);
  • shape 可以是 circle 或 ellipse,定义渐变形状。circle:表示指定渐变为圆形。这意味着渐变的宽度和高度将保持一致,形成一个完美的圆形。ellipse(默认值):表示指定渐变为椭圆形。这是默认值,如果不显式声明形状,渐变将默认为椭圆形。椭圆的宽高比依赖于渐变的尺寸(size)和容器的尺寸。这两个值允许你控制渐变的外观,使其更适合设计需求,无论是希望获得统一的圆形效果,还是适应容器的自然形状的椭圆形效果。

  • size 控制渐变的大小,如 closest-side、farthest-side、长度值等。

  • at position 定义渐变中心点,默认为元素中心,它允许你精确控制渐变圆心或椭圆中心的位置。at position值的语法类似于CSS中的background-position属性,可以是关键字(如 center、top、left、bottom、right),百分比值(如 50% 50%),或者具体的长度单位(如 100px 50px)。这些值共同决定了渐变中心相对于其容器的位置。例如:

    • at center 表示渐变中心位于元素的正中心。
    • at top left 表示渐变中心位于元素的左上角。
    • at 30% 70% 表示渐变中心位于元素宽度的30%处和高度的70%处。
    • at 20px 50px 表示渐变中心距离元素左边20像素,上边50像素的位置。
  • 后面的部分与线性渐变相同,定义颜色的切换点。

例如,一个从中心点向外扩散的圆形红色到透明渐变:

background: radial-gradient(circle, red, transparent);

实战示例

线性渐变实例

下面将为你提供几个实现CSS线性渐变效果的实例,涵盖不同方向和应用场景:

1. 从上到下的线性渐变

.gradient-top-to-bottom {
  background: linear-gradient(to bottom, #ff0000, #00ff00);
}

这个例子中,颜色从顶部的红色(#ff0000)渐变到底部的绿色(#00ff00)。

image.png

  1. 从左到右的线性渐变
.gradient-left-to-right {
  background: linear-gradient(to right, #0000ff, #ffff00);
}

此例中,颜色从左侧的蓝色(#0000ff)渐变到右侧的黄色(#ffff00)。

image.png

  1. 对角线(左上到右下)渐变
.gradient-diagonal {
  background: linear-gradient(to bottom right, #ff00ff, #00ffff);
}

在此示例中,颜色从左上角的洋红(#ff00ff)渐变到右下角的青色(#00ffff)。

image.png

  1. 多色渐变
.gradient-multi-color {
  background: linear-gradient(to right, #f00, #ff0 40%, #0f0 60%, #00f);
}

这个例子展示了多色渐变,从红色(#f00)开始,中间经过黄色(#ff0)和绿色(#0f0),最终到蓝色(#00f)。

image.png

  1. 带透明度的渐变(实现颜色淡入淡出效果)
.gradient-transparent { background: linear-gradient(to bottom, rgba(255,0,0,0), rgba(255,0,0,1)); }

这个例子中,颜色从完全透明的红色渐变到完全不透明的红色,实现了颜色的淡入效果。

image.png

  1. 使用角度指定的渐变
.gradient-angle { background: linear-gradient(135deg, #00bfff, #87cefa); }

这里,渐变方向由角度指定,135度角意味着从左下到右上的对角渐变,颜色从天蓝色(#00bfff)渐变到淡天蓝色(#87cefa)。

image.png

径向渐变实例

下面是一些实现CSS径向渐变效果的实例,展示不同类型的径向渐变应用:

  1. 基础径向渐变
.radial-gradient-basic {
  background: radial-gradient(circle, #ff0000, #00ff00);
}

这个例子中,颜色从中心的红色(#ff0000)渐变到边缘的绿色(#00ff00),渐变形状为默认的圆形。

image.png

  1. 设置渐变中心点
.radial-gradient-center {
  background: radial-gradient(at right bottom, #ff00ff, #00ffff);
}

渐变中心点被设定在元素的右下角,颜色从洋红到青色渐变。

image.png

  1. 多色径向渐变
.radial-gradient-multi {
  background: radial-gradient(circle, #f00, #ff0 30%, #0f0 60%, #00f);
}

展示了从红色到黄色、再到绿色、最后到蓝色的多色径向渐变。

image.png

  1. 重复径向渐变
.radial-gradient-repeat {
  background-image: repeating-radial-gradient(circle, #f00, #f00 10px, #ff0 10px, #ff0 20px);
}

这里需要注意一下repeating-radial-gradient 表示创建一个重复的径向渐变。与普通的径向渐变不同,当渐变达到边界后,它会重复生成相同的渐变模式,形成一种图案效果。在上面的示例中circle参数指定了渐变的形状为圆形。渐变将以一个完美的圆形从中心点开始并向外扩展。(#f00, #f00 10px, #ff0 10px, #ff0 20px)主要定义渐变颜色、渐变颜色的开始与结束位置。首先,渐变从颜色#f00(红色)开始。接着,到距离中心点10px的位置,红色(#f00)结束。在同一个10px位置,黄色(#ff0)开始。到达20px的位置时,黄色(#ff0)结束,但因为接下来没有指定新的颜色,渐变会从黄色开始重复,再次在10px之后变为红色,如此循环往复。

这样就创建了一个以红色到黄色为循环单元的重复径向渐变背景。

image.png

  1. 控制渐变大小
.radial-gradient-size {
  background: radial-gradient(closest-side, #00bfff, #87cefa);
}

通过设置closest-side,渐变的大小会根据离它最近的边来决定,颜色从天蓝色渐变到淡天蓝色。

image.png

总结

总的来说,CSS渐变是一个强大的工具,并且也没有想象的那么复杂。虽然方法很简单,但是想要设计出好的视觉效果对个人审美要求极高。为什么这么说呢?因为即使方法是简单,但这里的关键是什么样的颜色变化更符合人类的视觉美感,这活怕是只有UI设计才能胜任。但这也有关系,这里给大家分享一个网站https://www.designgradients.com/上面已经有很非常好看的渐变效果,可以拿来直接就用。>

image.png

喜欢就关注一下吧.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/755645.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【软件实施】软件实施概论

目录 软件实施概述定义主要工作软件项目的实施工作区别于一般的项目(如:房地产工程项目)软件实施的重要性挑战与对策软件项目实施的流程软件项目实施的周期 软件企业软件企业分类产品型软件企业业务特点产品型软件企业的分类产品型软件企业的…

web安全渗透测试十大常规项(一):web渗透测试之深入JAVA反序列化

渗透测试之PHP反序列化 1. Java反序列化1.1 FastJson反序列化链知识点1.2 FastJson反序列化链分析1.3.1 FastJson 1.2.24 利用链分析1.3.2 FastJson 1.2.25-1.2.47 CC链分析1.3.2.1、开启autoTypeSupport:1.2.25-1.2.411. Java反序列化 1.1 FastJson反序列化链知识点 1、为什…

【scau大数据原理】期末复习——堂测题

一、集群安装知识 启动集群的命令start-all.sh位于 Hadoop安装目录的sbin文件夹 目录下。 bin文件夹下包含常见的Hadoop,yarn命令;sbin命令下包含集群的启动、停止命令。 启动集群的命令start-all.sh包含 同时启动start-dfs.sh和start-yarn.sh 功能。…

JetBrains PyCharm 2024 mac/win版编程艺术,智慧新篇

JetBrains PyCharm 2024是一款功能强大的Python集成开发环境(IDE),专为提升开发者的编程效率和体验而设计。这款IDE不仅继承了前代版本的优秀特性,还在多个方面进行了创新和改进,为Python开发者带来了全新的工作体验。 JetBrains PyCharm 20…

LED封装技术中SMD、COB和GOB的优缺点

在小间距LED显示屏的封装技术中,SMD、COB和GOB各有其优缺点,以下是对这些技术的详细分析: SMD(Surface Mounted Devices)表贴工艺技术 SMD技术是将LED灯珠焊接在电路板上的一种成熟技术,广泛应用于LED显示屏…

java+mysql通讯录管理

完整代码地址如果控制台打印出现乱码,进行如下设置

10分钟完成微信JSAPI支付对接过程-JAVA后端接口

引入架包 <dependency><groupId>com.github.javen205</groupId><artifactId>IJPay-WxPay</artifactId><version>${ijapy.version}</version></dependency>配置类 package com.joolun.web.config;import org.springframework.b…

DC-DC原理,升降压原理,BUCK,BOOST

DC-DC简述 开关电源包括电源模块&#xff0c;可以直接使用&#xff0c;不需要外部电路&#xff0c;提供的功率比较小。还有电源稳压器&#xff0c;这种功率MOS一般集成在芯片内部&#xff0c;但是需要选择外部电感。另外还有PWM控制器&#xff0c;需要选择功率MOS&#xff0c;二…

centos上部署Ollama平台,实现语言大模型本地部署

网上有很多大模型&#xff0c;很多都是远程在线调用ChatGPT的api来实现的&#xff0c;自己本地是没有大模型的&#xff0c;这里和大家分享一个大模型平台&#xff0c;可以实现本地快速部署大模型。 Ollama是一个开源项目&#xff0c;它提供了一个平台和工具集&#xff0c;用于部…

【Python】已解决:ModuleNotFoundError: No module named ‘LAC‘

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named ‘LAC‘ 一、分析问题背景 在开发或运行Python程序时&#xff0c;可能会遇到各种各样的报错&#xff0c;其中“ModuleNo…

stm32-hal库(5)--usart串口通信三种模式(主从通信)(关于通信失败和串口不断发送数据问题的解决)

问题&#xff1a; 最近发现&#xff0c;stm32cubemx最新版本f1系列的hal库&#xff08;1.85版本&#xff09;生成的hal库&#xff0c;其中stm32f1xx_hal_uart.c的库文件中&#xff0c;其串口发送接收存在一些问题&#xff1a; 1.没有使用 __HAL_LOCK 和 __HAL_UNLOCK 宏&…

多元时间序列分析——VAR(向量自回归模型)

VAR模型主要是考察多个变量之间的动态互动关系&#xff0c;从而解释各种经济冲击对经济变量形成的动态影响。这种动态关系可通过格兰杰因果关系、脉冲响应以及方差分解来进一步明确和可视化。VAR模型主要研究内生变量之间的关系&#xff0c;内生变量就是参与模型并由模型体系内…

【数据结构】(C语言):链表

链表&#xff1a; 基本单位是节点。节点至少两部分&#xff1a;数据&#xff0c;下一个数据的地址。头指针head&#xff0c;始终指向链表的第一个节点。若没有节点&#xff0c;则headNULL。链表在内存中是非连续的。不能使用索引&#xff08;下标&#xff09;查找元素。只能从…

【Vue】Vue3基础

VUE3基础 1、简介2、创建工程2.1 基于vue-cli创建&#xff08;脚手架webpack&#xff09;2.2 基于vite创建&#xff08;推荐&#xff09;2.3 目录结构2.4 vscode插件推荐 3、核心语法3.1 选项式&#xff08;options API&#xff09;和组合式&#xff08;composition API&#x…

of_match_device是怎么匹配的

这里以spi-gpio.c为例 先判断有没有匹配表和dev中有没设备树节点 struct device中有个保存设备树节点的结构体 可通过三种方式匹配&#xff1a;名字、类型、compatible 匹配成功&#xff0c;则执行第一个

海外媒体发稿:媒体宣发套餐的作用分享-华媒舍

一、神奇媒体宣发套餐 神奇媒体宣发套餐是一项专业的多媒体宣传推广服务&#xff0c;旨在帮助企业、个人快速提升品牌知名度和曝光度。它通过全面覆盖主流媒体、社交网络以及各大网络平台&#xff0c;将您的宣传信息传递给广泛的受众群体&#xff0c;实现全方位、多角度的宣传…

无人机无刷电机理论教学培训课程

本文档为一份关于Brushless电机理论的详细教程&#xff0c;由TYTO Robotics编制&#xff0c;旨在帮助用户理解brushless电机的工作原理、特性以及如何通过实验测定其关键参数Kv和Kt。文档首先介绍了brushless电机的基本组成&#xff0c;包括静止的定子和旋转的转子&#xff0c;…

python循环结构

1.while 循环 语句&#xff1a; while 循环条件表达式&#xff1a; 代码块 else&#xff1a; 代码块 小练&#xff1a; 设计一百以内的偶数相加 n 0 while n < 100:n 1if n % 2 0 :print(n) 判断是不是闰年&#xff08;四年一润和百年不润&#xff0c;或者四百年一润&am…

Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析

技术背景 我们在对接Linux平台RTSP播放模块的时候&#xff0c;遇到这样的技术需求&#xff0c;开发者需要把Linux RTSP播放器拉取的数据&#xff0c;除了实时播放外&#xff0c;还要投递给python&#xff0c;用于视觉算法分析。 技术实现 Linux平台RTSP、RTMP直接播放不再赘…

GoLang语言

基础 安装Go扩展 go build 在项目目录下执行go build go run 像执行脚本文件一样执行Go代码 go install go install分为两步&#xff1a; 1、 先编译得到一个可执行文件 2、将可执行文件拷贝到GOPATH/bin Go 命令 go build :编译Go程序 go build -o "xx.exe"…