CSS radial-gradient函数详解

目录

基本语法

关键参数详解

1. 渐变形状(Shape)

2. 渐变大小(Size)

3. 中心点位置(Position)

4. 颜色断点(Color Stops)

常见应用场景

1. 基本圆形渐变

2. 椭圆渐变

3. 模拟光源效果

4. 多色渐变

5. 重复放射性渐变

高级技巧

1. 创建圆形光晕

2. 组合多个渐变

3. 实现 3D 球体效果

注意事项

示例代码


radial-gradient() 是 CSS 中用于创建放射性渐变的函数,它会从一个中心点向外扩散形成圆形或椭圆形的渐变效果。与线性渐变(linear-gradient)不同,放射性渐变的颜色过渡是从中心向四周辐射的。

基本语法

css

background: radial-gradient([shape] [size] [at position],color-stop1,color-stop2,...
);
  • 核心参数
    • shape:渐变形状(圆形或椭圆形)。
    • size:渐变的大小(如 closest-sidefarthest-corner)。
    • position:渐变中心点的位置(如 centertop left)。
    • color-stop:颜色断点(如 red 0%blue 100%)。

关键参数详解

1. 渐变形状(Shape)

  • circle:圆形(等宽高)。
  • ellipse:椭圆形(默认值,根据容器比例自适应)。

css

.circle-gradient {background: radial-gradient(circle, red, yellow);
}.ellipse-gradient {background: radial-gradient(ellipse, red, yellow);
}

2. 渐变大小(Size)

控制渐变结束点的位置,可选值:

  • closest-side:渐变到最近的边停止。
  • closest-corner:渐变到最近的角停止。
  • farthest-side:渐变到最远的边停止(默认值)。
  • farthest-corner:渐变到最远的角停止。
  • 具体长度值(如 100px)或百分比(如 50%)。

css

.closest-side {background: radial-gradient(circle closest-side, red, yellow);
}.farthest-corner {background: radial-gradient(circle farthest-corner, red, yellow);
}

3. 中心点位置(Position)

使用 at 关键字指定中心点,语法与 background-position 类似:

  • 关键字(如 at top leftat center)。
  • 长度值(如 at 20px 50px)。
  • 百分比(如 at 30% 70%)。

css

.top-left {background: radial-gradient(circle at top left, red, yellow);
}.custom-position {background: radial-gradient(circle at 20% 80%, red, yellow);
}

4. 颜色断点(Color Stops)

与线性渐变类似,可指定多个颜色及其位置:

css

multi-color {/* 从红到绿到蓝的渐变 */background: radial-gradient(circle, red 0%, green 50%, blue 100%);
}

常见应用场景

1. 基本圆形渐变

css

.circle {background: radial-gradient(circle, #ff9a9e, #fad0c4);
}

2. 椭圆渐变

css

.ellipse {background: radial-gradient(ellipse, #a1c4fd, #c2e9fb);
}

3. 模拟光源效果

css

.light {background: radial-gradient(circle at center, white, rgba(255,255,255,0) 70%);
}

4. 多色渐变

css

rainbow {background: radial-gradient(circle,red 0%, orange 20%, yellow 40%,green 60%, blue 80%, purple 100%);
}

5. 重复放射性渐变

使用 repeating-radial-gradient() 创建重复图案:

css

.stripes {background: repeating-radial-gradient(circle,#f0f0f0,#f0f0f0 10px,#e0e0e0 10px,#e0e0e0 20px);
}

高级技巧

1. 创建圆形光晕

css

.halo {width: 200px;height: 200px;background: radial-gradient(circle,rgba(255,255,255,0.8) 0%,rgba(255,255,255,0) 70%);border-radius: 50%;
}

2. 组合多个渐变

通过 background-image 叠加多个渐变:

css

.combined {background-image: radial-gradient(circle at 10% 20%, rgba(255,94,247,0.4) 0%, rgba(218,255,165,0.4) 90.1%),radial-gradient(circle at 80% 50%, rgba(0,255,255,0.4) 0%, rgba(255,121,0,0.4) 90%);
}

3. 实现 3D 球体效果

css

.ball {width: 100px;height: 100px;background: radial-gradient(circle at 30% 30%,white 0%,#66ccff 20%,#0066cc 100%);border-radius: 50%;box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

注意事项

  1. 浏览器兼容性
    所有现代浏览器均支持,IE10+ 需要前缀 -webkit-

  2. 性能考虑
    复杂的渐变(如多层叠加、高分辨率)可能影响渲染性能。

  3. 回退方案
    建议为不支持渐变的浏览器提供纯色背景:

    css

    .element {background: #ccc; /* 回退颜色 */background: radial-gradient(circle, #fff, #ccc);
    }
    
  4. 渐变定位与尺寸

    • 使用 circle 时,确保容器是正方形,否则会自动变为椭圆。
    • size 参数可能影响渐变的视觉效果,需根据需求调整。

示例代码

html

预览

<style>.example {width: 300px;height: 200px;margin: 20px;border-radius: 10px;}.basic-circle {background: radial-gradient(circle, #ff5e62, #ff9966);}.custom-size {background: radial-gradient(circle closest-side at 20% 30%, #4facfe, #00f2fe);}.multiple-colors {background: radial-gradient(ellipse,#a18cd1 0%,#fbc2eb 50%,#8ec5fc 100%);}.repeating {background: repeating-radial-gradient(circle,#e66465 0px,#9198e5 20px,#e66465 40px);}
</style><div class="example basic-circle"></div>
<div class="example custom-size"></div>
<div class="example multiple-colors"></div>
<div class="example repeating"></div>

通过组合不同的形状、大小、位置和颜色断点,radial-gradient() 可以创建出丰富多样的视觉效果,从简单的背景到复杂的图案都能轻松实现。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分析Web3下数据保护的创新模式

在这个信息爆炸的时代&#xff0c;我们正站在 Web3 的门槛上&#xff0c;迎接一个以去中心化、用户主权和数据隐私为核心的新时代。Web3 不仅仅是技术的迭代&#xff0c;它更是一场关于数据权利和责任的结构性变革。本文将探讨 Web3 下数据保护的创新模式&#xff0c;以期为用户…

RabbitMQ-Go 性能分析

更多个人笔记见&#xff1a; &#xff08;注意点击“继续”&#xff0c;而不是“发现新项目”&#xff09; github个人笔记仓库 https://github.com/ZHLOVEYY/IT_note gitee 个人笔记仓库 https://gitee.com/harryhack/it_note 个人学习&#xff0c;学习过程中还会不断补充&…

AI助力Java开发:减少70%重复编码,实战效能提升解析

工具再先进&#xff0c;也替代不了编程思维的深度锤炼 在Java开发领域&#xff0c;重复编码如同无形的生产力黑洞——以商品管理模块开发为例&#xff0c;开发者耗费大量时间编写SQL查询、处理结果集转换&#xff1b;用户系统里&#xff0c;密码加密和状态管理的代码在不同项目…

JS语法笔记

目录 JS数组Array新建数组一维数组二维数组 reverse()在数组末尾插入&#xff1a;push()在数组末尾删除&#xff1a;pop()在数组开头插入&#xff1a;unshift()从数组开头删除一个元素shift()splice() MapSet JS数组Array 判断数组相等不能用&#xff0c;要循环判断 新建数组…

uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)

地址信息,在我们支付订单上有这样一个接口,就是物流方式,一个自提,我们就显示商家地址。一个是外送,就是用户自己填写的地址。 这里先说说用户的地址添加。需要使用到的一些方式方法,主要有关于地址选择器,就是uni-data-picker级联选择。 该文介绍了电商应用中地址信息处…

网页前端开发(基础进阶3--Vue)

Vue3 Vue是一款用于构建用户界面的渐进式的JavaScript框架。 Vue由2部分组成&#xff1a;Vue核心包&#xff0c;Vue插件包 Vue核心包包含&#xff1a;声明式渲染&#xff0c;组件系统。 Vue插件包&#xff1a;VueRouter&#xff08;客户端路由&#xff09;&#xff0c;Vuex…

大模型相关技术综述

多模态大模型&大模型训练语料持续迭代 已经开始整理多模态-视觉部分&#xff1a; 主要分为一下几块 多模态信息压缩模型&#xff08;clip、vit、swiT&#xff09; 生成模型&#xff08;vae、gan、flow、ddpm、sde…) 其它多模态大模型&#xff08;语音、视频、slam、3…

Vue3中Ant-design-vue的使用-附完整代码

前言 首先介绍一下什么是Ant-design-vue Ant Design Vue 是基于 Vue 3 的企业级 UI 组件库&#xff08;同时兼容 Vue 2&#xff09;&#xff0c;是蚂蚁金服开源项目 Ant Design 的 Vue 实现版本。它遵循 Ant Design 的设计规范&#xff0c;提供丰富的组件和高质量的设计体系&…

建造者模式:优雅构建复杂对象

引言 在软件开发中&#xff0c;有时我们需要创建一个由多个部分组成的复杂对象&#xff0c;这些部分可能有不同的变体或配置。如果直接在一个构造函数中设置所有参数&#xff0c;代码会变得难以阅读和维护。当对象构建过程复杂&#xff0c;且需要多个步骤时&#xff0c;我们可…

如何通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式(并进行了训练、推理)

计划让AI帮助编程使用TabPFN模型进行股价推理 原计划提问的prompt 如何通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式 本意是想让AI分步执行&#xff0c;先处理股票数据&#xff0c;然后再进行模型训练&#xff0c;结果豆包超…

[蓝桥杯]最大化股票交易的利润

最大化股票交易的利润 题目描述 实现一个算法寻找最大化股票交易利润的策略。介绍如下&#xff1a; 股票价格每天都在变化&#xff0c;以数组的索引表示交易日&#xff0c;以数组的元素表示每天的股票价格。可以通过买入和卖出获得利润。一天只能进行一次买入或卖出操作&…

URL 结构说明+路由(接口)的认识

一、URL 结构说明 以这个为例&#xff1a;http://127.0.0.1:5000/zhouleifeng 1.组成部分: http://&#xff1a;协议 127.0.0.1&#xff1a;主机&#xff08;本地地址&#xff09; :5000&#xff1a;端口号&#xff08;Flask 默认 5000&#xff09; /zhouleifeng&#xff1a…

微服务商城-用户微服务

数据表 用户表 CREATE DATABASE user; USE user;CREATE TABLE user (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 用户ID,username varchar(50) NOT NULL DEFAULT COMMENT 用户名,password varchar(50) NOT NULL DEFAULT COMMENT 用户密码&#xff0c;MD5加密…

Java面试题及答案整理( 2025年最新版,持续更新...)

最近发现网上很多Java面试题都没有答案&#xff0c;所以花了很长时间搜集整理出来了这套Java面试题大全&#xff0c;希望大家能够喜欢&#xff01; 注&#xff1a;篇幅有限&#xff0c;资料已整理成文档&#xff0c;后台si我666&#xff0c;我一个个发&#xff01; 这套面试文…

[论文阅读]PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning

PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning | IJCAI IJCAI-22 发表于2022年的论文&#xff0c;当时大家还都在做小模型NLP的相关工作&#xff08;BERT&#xff0c;Ro…

Redis最佳实践——性能优化技巧之集群与分片

Redis集群与分片在电商应用中的性能优化技巧 一、Redis集群架构模式解析 1. 主流集群方案对比 方案核心原理适用场景电商应用案例主从复制读写分离数据冗余中小规模读多写少商品详情缓存Redis Sentinel自动故障转移监控高可用需求场景订单状态缓存Redis Cluster原生分布式分片…

Vue 生命周期全解析:从创建到销毁的完整旅程

Vue 生命周期是每个 Vue 开发者必须深入理解的核心概念之一。它定义了组件从创建、挂载、更新、销毁的整个过程&#xff0c;以及在这个过程中各个阶段提供的钩子函数。掌握生命周期不仅能帮助你理解 Vue 的工作原理&#xff0c;还能让你在合适的时机执行特定的操作&#xff0c;…

【Rust 高级trait】Rust trait的一些高级用法解密

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

联想电脑护眼卫士与系统颜色配置(X-Rite)冲突 | 显示设置频繁变换色阶 - 解决方案

联想电脑护眼卫士与系统颜色配置X-Rite冲突 | 显示设置频繁变换色阶 - 解决方案 前言方案1&#xff1a;解决联想护眼卫士方案2&#xff1a;解决系统颜色配置(X-Rite) 前言 自带X-Rite软件的联想电脑&#xff08;以拯救者Y9000P&#xff0c;Win11系统为例&#xff09;&#xff…

MySQL中SELECT查询的执行顺序

MySQL中SELECT查询的执行顺序 在日常的数据库开发中&#xff0c;我们经常会写各种复杂的SELECT查询语句。然而&#xff0c;很多开发者对于MySQL实际执行这些查询的顺序并不完全了解。理解查询的执行顺序不仅有助于编写更高效的SQL语句&#xff0c;还能帮助我们更好地优化查询性…